Консультация № 69880
07.01.2007, 16:09
0.00 руб.
0 2 2
здраствуйте уважаемые эксперты !
подскажите пожалуста
как из указаной директории окрыть файл например рисунок или запустить exe какой нибудь
спасибо зарание за ответ

Обсуждение

Неизвестный
07.01.2007, 18:45
общий
это ответ
Здравствуйте, Fins!
например в приложение представлена программа, которая открывает все файлы брошеные ей как параметры в командную строку!

Приложение:
program Execute;uses Windows, SysUtils, ShellAPI;var i:Integer;procedure ExecuteThis(Name:PChar);begin ShellExecute(0, nil, Name, nil, nil, 1);end;begin for i:=1 to ParamCount do if FileExists(ParamStr(i)) then ExecuteThis(PChar(ParamStr(i)));end.
давно
Руководитель
1
1524
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ю
Об авторе:
Если не знаешь, что делать - делай шаг вперед.

Форма ответа