12.01.2007, 00:06
общий
это ответ
Здравствуйте, Fins!
Для запуска других приложений можно использовать WinExec.
<i>function WinExec (lpCmdLine: LPCSTR; uCmdShow: UINT): UINT</i>
lpCmdLine - полный путь к файлу (PAnsiChar)
uCmdShow - способ отображения программы (LongWord). Определены константы:
SW_HIDE - Окно в скрытом режиме.
SW_MAXIMIZE - Окно максимального размера
SW_MINIMIZE - Окно находится в свернутом виде, активируется следующее верхнее окно в Z последовательности.
SW_RESTORE - Активирует и показывает окно. Если окно свернуто или развернуто, Windows восстанавливает его к первоначальному размеру и позиции. Приложение должно определить этот флаг при восстановлении свернутого окна.
SW_SHOW - Активирует окно и выводит его в текущих размерах и позиции.
SW_SHOWMAXIMIZED - Активирует и показывает окно в развернутом виде.
SW_SHOWMINIMIZED - Активирует и показывает окно в свернутом виде.
SW_SHOWMINNOACTIVE - Отображает окно в свернутом виде. Активное окно остается активным.
SW_SHOWNA - Отображает окно в текущем состоянии. Активное окно остается активным.
SW_SHOWNORMAL - Активирует и показывает окно. Если окно свернуто или развернуто, Windows восстанавливает его к первоначальному размеру и позиции. Приложение должно определить этот флаг при показе окна в первый раз.
Однако, Microsoft не рекомендует использовать WinExec, а предлагает пользоваться CreateProcess (создание процесса), что несколько сложнее из-за большого количества передаваемых аргументов.
Более "продвинутый" вариант вызова - ShellExecute.
<i>function ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST</i>
Функция позволяет открыть или вывести на принтер указанный файл, а также открыть каталог (<i>open (открыть), print (напечатать) и explore (исследовать)</i>). В качестве файла (параметр Operation) можно указать исполняемый файл, в результате чего запустится приложение, либо любой другой файл, что приведет к запуску соответствующего приложения, обрабатывающего данный тип файлов. Например, если с помощью ShellExecute Вы попробуете запустить файл с расширением .BMP, то будет запущена соответствующая программа для просмотра графических файлов.
Параметр hWnd содержит ссылку на окно, из которого запускается другое приложение.
Параметр Operation указывает на строку с описанием выполняемой команды (операции). Командная строка может принимать следующие значения:
- <i>open</i> (открытие файла или каталога, указанных параметром FileName. Если задан исполняемый файл, то он запускается).
- <i>print</i> (печать файла документа).
- <i>explore</i> (открытие каталога, указанного параметром FileName).
Если для этого параметра указать <b>nil</b>, то по умолчанию принимается значение <i>open</i>.
Параметр FileName является указателем на строку с именем файла или каталога, для которых выполняется операция.
Параметр Parameters указывает на строку, содержащую передаваемые запускаемому приложению параметры. Если открывается неисполняемый файл, то следует установить это значение в <b>nil</b>.
Параметр Directory указывает на строку с именем каталога по умолчанию.
Параметр ShowCmd определяет (так же, как для WinExec) способ отображения окна запускаемого приложения.
Перед использованием ShellExecute в разделе Uses нужно подключить модуль ShellAPI.
Пример использования ShellExecute для запуска блокнота Windows:
<i>ShellExecute (Application.MainForm.Handle, PChar (‘open‘), PChar (‘notepad.exe‘), Nil, Nil, SW_SHOWNORMAL);</i>
В качестве окна, вызвавшего Блокнот, указана главная форма приложения Application.MainForm.
Открытие текстового документа:
<i>ShellExecute (Application.MainForm.Handle, PChar (‘open‘), PChar (‘test.doc‘), Nil, PChar (‘c:\example‘), SW_SHOWNORMAL);</i>
Открывается файл test.doc из каталога c:\exampleю
Об авторе:
Если не знаешь, что делать - делай шаг вперед.