Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизКак при нажатии на кнопку запустить другой exe? Найти похожие ветки
← →
Kiril (2003-10-07 21:34) [0]Привет!
Поискал на сайте, но ничего не нашел. Решил задать вопрос.
Как при нажатии на кнопку запустить другой exe? Какие могут быть неприятности?
Кирилл
← →
хз (2003-10-07 21:42) [1]Хм...Я точно не знаю ;-))), но наверное ShellExecute...:-))))
uses
ShellApi
ShellExecute(Application.handle,nil,PChar("C:\tvoya_proga.exe"),nil,nil,SW_SHOW);
Неприятности различного рода могут быть, если будешь задавать подобные вопросы...;-)
← →
Guerrillero (2003-10-07 22:33) [2]CreateProcess + F1
← →
wl (2003-10-07 23:02) [3]WinExec() проще
← →
хз (2003-10-07 23:14) [4]2 wl ©
> WinExec() проще
Проще - не всегда лучше.
← →
Deimos (2003-10-07 23:15) [5]всё довольно просто:
вот функция вызова
function ExecAndWait(const FileName, Params:
ShortString; const WinState: Word): boolean;
export;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CmdLine: ShortString;
begin
{ Помещаем имя файла между кавычками, с }
{ соблюдением всех пробелов в именах Win9x }
CmdLine := """ + Filename + "" " + Params;
FillChar(StartInfo, SizeOf(StartInfo), #0);
with StartInfo do
begin
cb := SizeOf(SUInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := WinState;
end;
Result := CreateProcess(nil, PChar( String(
CmdLine ) ), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
nil,
PChar(ExtractFilePathFilename)),StartInfo,ProcInfo);
{ Ожидаем завершения приложения }
if Result then
begin
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
{ Free the Handles }
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;
end;
А вот пример вызова этой функции
ExecAndWait( "C:windowscalc.exe", "", SH_SHOWNORMAL)
Параметр FileName = Имя внешней программы.
Параметр Params = Параметры, необходимые для запуска внешней программы
Параметр WinState = Указывает - как будет показано окно: Для этого параметра мы можем так же использовать следующие константы: SW_HIDE, SW_MAXIMIZE, SW_MINIMIZE, SW_SHOWNORMAL
← →
kaif (2003-10-08 00:41) [6]WinExec старая. Рекомендуется ShellExecute
← →
wl (2003-10-08 02:07) [7]согласен, но кое-где читал, что в новых версиях винды WinExec - просто переходник к ShellExecute, так что какая разница, раз её проще использовать. но не будем раздувать флейм :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.492 c