![]() |
|
|
#1
|
|||
|
|||
|
Доброго времени суток!
Код:
procedure TForm1.Button1Click(Sender: TObject); begin ShellExecute(Handle, 'open', 'C:\Program Files\Softland\doPDF 7\dopdf.exe', nil, nil, SW_SHOWNORMAL); end; жму ctrl+F9 - ошибок нет, но project.exe не создается. Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'C:\Program Files\Softland\doPDF 7\dopdf.exe', nil, nil, SW_SHOWNORMAL);
WinExec('C:\Program Files\Softland\doPDF 7\dopdf.exe', SW_SHOWNORMAL);
end;работает - ожидаемо 2 раза открывает. В чём косяк в первом коде? |
|
#2
|
||||
|
||||
|
Проверил несколько раз с блокнотом, всё собирается и работает. Возможно из вилки ShellExecuteA и ShellExecuteW выбирается не то, что нужно и в функцию заходит абракадабра вместо названия файла из-за разницы в кодировке или типе. Как вариант, использовать принудительное указание типа
Код:
ShellExecute(Handle, 'open', PChar('C:\Program Files\Softland\doPDF 7\dopdf.exe'), nil, nil, SW_SHOWNORMAL); |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
U.B.M. (15.03.2013)
| ||
|
#3
|
|||
|
|||
|
Цитата:
Да в том-то и дело, что выбирается как-бы то что нужно... Ведь во втором случае ShellExecute работает нормально без PChar. При этом PChar неожиданно помог в первом случае. |
|
#4
|
||||
|
||||
|
Код:
ShellExecute(Handle, PChar('open'), PChar('C:\Program Files\Softland\doPDF 7\dopdf.exe'), nil, nil, SW_SHOWNORMAL); |
|
#5
|
||||
|
||||
|
Цитата:
Код:
'C:\Program Files\Softland\doPDF 7\dopdf.exe'+#0 |
|
#6
|
|||
|
|||
|
Проверил следующее:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
//do something
ShellExecute(Handle, 'open', {PChar(}'C:\Program Files\Softland\doPDF 7\dopdf.exe'{)}, nil, nil, SW_SHOWNORMAL);
end;Тоже работает. Видимо глюк непонятный был. ПолтерГейтс прям какой-то ![]() Последний раз редактировалось U.B.M., 15.03.2013 в 12:10. |
|
#7
|
||||
|
||||
|
Цитата:
|
|
#8
|
||||
|
||||
|
Цитата:
|
|
#9
|
||||
|
||||
|
Код:
stroka db 'Stroka s tekstom', 0 ... invoke ShellExecute [Handle], open_str, stroka, 0, 0, SW_SHOWNORMAL |