Теоретические сведения. Для запуска внешних программ можно использовать функцию WinExec или ShellExecute
Для запуска внешних программ можно использовать функцию WinExec или ShellExecute. Функция WinExec позволяет выполнить указанное приложение. Определение функции: function WinExec (CmdLine: Pchar; CmdShow: integer): integer;. Параметр CmdLine является указателем на строку с нулевым символом в конце, содержащую имя используемого файла и, если необходимо, параметры командной строки. Если имя указано без пути, то Windows ищет выполняемый файл в следующей последовательности. 1. В каталоге, из которого запущено приложение. 2. В текущем каталоге. 3. В системном каталоге Windows, имя которого возвращается функцией GetSystemDirectory. 4. В каталоге Windows, имя которого возвращается функцией GetWindowsDirectory. 5. В каталогах из списка в переменной окружения PATH. Параметр CmdShow определяет форму представления окна запускаемого приложения Windows. Возможные значения этого параметра смотрите в разделе ShellExecute. Для приложений, не являющихся Windows-приложениями, файлов PIF и т. д., состояние окна определяет само приложение. При успешном выполнении запуска приложения функция WinExec возвращает значение, большее 31. Достоинство функции WinExec является ее совместимостью с ранними версиями Windows. Собственно, для этого она и сохраняется в WIN32, хотя для WIN32 рекомендуется пользоваться функцией CreateProcess. При работе с WIN32 функция WinExec завершает работу, если вызванное приложение вызывает функцию с или заканчивается выделенный лимит времени. Таким образом, ожидание можно прервать, предусмотрев в процессе, запущенном с помощью WinExec, в нужный момент вызов функции WinExec. В отличие от WinExec, функция ShellExecute позволяет не только выполнить любое приложение Windows, но и открыть файл документа, что означает выполнение связанного с ним приложения и загрузку в него этого документа. Например, обычно с документами, имеющими расширение.doc, связана программа WinWord. В этом случае открыть файл, например, с именем file.doc означает запустить WinWord и передать ему в качестве параметра имя файла file.doc. Кроме описанных возможностей функция ShellExecute позволяет распечатать указанный файл или открыть указанную папку. Последнее означает, что будет запущена программа «Проводник» с открытой указанной папкой. Определение функции: Function ShellExecute (Wnd: HWnd; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): Thandle;. Важнейшие параметры функции имеют следующие значения:
Функция ShellExecute возвращает дескриптор открытого приложения или дескриптор сервера DDE-приложения. Если возвращаемое значение меньше или равно 32, это указывает на ошибку.
|