![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#8
|
|||
|
|||
![]() ShellExecute(Handle,'open','Calc',nil,nil,SW_RESTO RE);
ShellExecute() ShellExecuteEx() WinExec() CreateProcess() LoadModule() Зависимости: Требуется модуль ShellApi Примеры: ShellExecute(Handle,nil,'notepad.exe',nil,nil,SW_S HOWNORMAL);SW_HIDE Последний параметр управляет видимостью и активностью запущенной программы на экране. Через ShellExecute() также можно запускать ассоциированную с тем или иным файлом программу: ShellExecute(Handle,'open','pd.doc',nil,nil,SW_SHO WNORMAL); - запустит MS Word (или другую программу, ассоциироанную для запуска *.doc файлов) и загрузит в него файл pd.doc. WinExec('notepad.exe',SW_SHOWNORMAL); WinExec() легче в использовании, однако давно уже устарела и не рекомендуется к использованию, оставлена только в целях совместимости с 16-ти разрядными приложениями. ---------------------------------------------------------------------------- Вариант №2 через WaitForSingleObject Код:
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(StartInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := WinState; end; Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo); { Ожидаем завершения приложения } if Result then begin WaitForSingleObject(ProcInfo.hProcess, INFINITE); { Free the Handles } CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread); end; end; { А вот пример вызова этой функции: ExecAndWait( 'C:\windows\calc.exe', '', SH_SHOWNORMAL) Параметр FileName = Имя внешней программы. Параметр Params = Параметры, необходимые для запуска внешней программы Параметр WinState = Указывает - как будет показано окно: Для этого параметра мы можем так же использовать следующие константы: SW_HIDE, SW_MAXIMIZE, SW_MINIMIZE, SW_SHOWNORMAL PS: Этот код тестировался в delphi версий 3, 4 и 5. } Последний раз редактировалось Admin, 31.03.2010 в 11:05. |