Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2012, 22:23   #1
mavlon_m
Форумчанин
 
Регистрация: 04.08.2009
Сообщений: 101
По умолчанию запуск приложение

как запустить другой приложение через codegear 2009, на пример файл .doc

ShellExecute(Handle,nil,pchar(Extra ctFilePath(Application.ExeName)+'1. doc') ,nil, nil, SW_SHOW);

не работает
mavlon_m вне форума Ответить с цитированием
Старый 06.06.2012, 22:27   #2
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

Код:
ShellExecute(0, 'open', PChar('путь к файлу'), nil, nil, SW_SHOW);
смотрим на 1 и 2 параметры и дзенствуем
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Старый 07.06.2012, 01:30   #3
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

> ShellExecute(Handle,nil,pchar(Extra ctFilePath(Application.ExeName)+'1. doc') ,nil, nil, SW_SHOW);

После этого сделай вот так:
ShowMessage(SysErrorMessage(GetLast Error));

Возможно, у тебя путь кривой (это к примеру).

> смотрим на 1 и 2 параметры и дзенствуем

Да ладно - с параметрами у Мавлона всё ровно, его вариант вполне рабочий, не надо паники (:
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 07.06.2012, 07:36   #4
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

1) ExtractFilePath(Application.ExeName ) лучше заменить на extractfilepath(paramstr(0))

2)
Цитата:
Сообщение от ych_del Посмотреть сообщение
Да ладно - с параметрами у Мавлона всё ровно, его вариант вполне рабочий, не надо паники (:
первый параметр - можно и оставить как есть, а вот вторым мы собственно говорим что делать.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx rtfm
$me = $me == $me ? $me : $me;

Последний раз редактировалось [MoNAMur]; 07.06.2012 в 07:40.
[MoNAMur] вне форума Ответить с цитированием
Старый 07.06.2012, 07:40   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от [MoNAMur] Посмотреть сообщение
ExtractFilePath(Application.ExeName ) лучше заменить на extractfilepath(paramstr(0))
Чем лучше?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.06.2012, 08:12   #6
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

xD писать короче, выглядит не хуже, а на выходе тоже. так почему не использовать то что быстрее написать))
ну и у меня бывает такое что Application.ExeName выдает мне дос путь с символами "~", а вот paramstr(0) меня еще ни разу не подводила.
правда тут есть подводный камень - если в ярлыке на программу указать рабочую директорию, а в объекте только exe файл, и запустить через ярлык, то тогда результаты неправильные должны быть. Но кто в здравом уме такое сотворит?
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Старый 07.06.2012, 08:48   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас тут полный путь поидее, причем тут рабочая директория?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.06.2012, 14:23   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
у меня бывает такое что Application.ExeName выдает мне дос путь с символами "~", а вот paramstr(0) меня еще ни разу не подводила.
В Forms вся разница
Код:
function TApplication.GetExeName: string;
begin
  Result := ParamStr(0);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.06.2012, 15:35   #9
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Цитата:
Сообщение от [MoNAMur] Посмотреть сообщение
1) ExtractFilePath(Application.ExeName ) лучше заменить на extractfilepath(paramstr(0))

2)
первый параметр - можно и оставить как есть, а вот вторым мы собственно говорим что делать.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx rtfm
win32.hlp:
> The lpOperation parameter can be NULL. In that case, the function opens the file specified by lpFile.

msdn:
> The default verb is used, if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.

По факту, гражданину требуется (как я понимаю) именно выполнить действие по умолчанию для файла указанного типа. Ради интереса можешь поставить эксперимент: для любого расширения в реестре переименовать HKCR\[type]\shell\open на, допустим, zopen, и посмотреть, что получится. Nil в данном случае рулит.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.

Последний раз редактировалось ych_del; 07.06.2012 в 15:53.
ych_del вне форума Ответить с цитированием
Старый 07.06.2012, 15:37   #10
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Чем лучше?
Убираем Forms из uses и наслаждаемся сообщениями Application: Identifier unknown.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приложение ALEX777a Фриланс 5 14.03.2012 13:27
Запретить второй запуск программы. Приложение без окон Lauri Общие вопросы Delphi 18 05.07.2011 15:48
ЗАпуск Волк Общие вопросы Delphi 1 15.05.2011 13:53
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) Мила777 Фриланс 2 21.10.2009 11:05
запуск kalin Общие вопросы Delphi 8 02.03.2007 05:27