Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запуск программы


TsvIlya ©   (2002-03-26 12:01:00) 

Как запустить постороннюю программу из программы на Delphi? Знаю, что нужно использовать ShellExecute, но не знаю как им пользоваться (баги на каждом шагу).


Goblinus   (2002-03-27 16:51:00) [1]

Пользуйся WinExec:

Синтаксис:

WinExec(lpCmdLine: LPCSTR, uCmdShow: UINT): UINT

lpCmdLine: LPCSTR - имя файла (если путь не включён, то файл ищется в каталогах %Windir%\, %Windir%\System, в текущем каталоге и в каталоге, откуда запущено приложение. %Windir% - директория Windows.)

uCmdShow - способ отображения окна:

SW_ShowMaximized - максимизировано
SW_ShowMinimized - минимизировано
SW_ShowNormal - обычным способом

Так, например. запускается калькулятор Windows в минимизированном режиме:

WinExec(PCHar("Calc.exe"), SW-ShowMinimized);


[HDD]John   (2002-03-27 16:40:00) [2]

Не понял а чем WinExec не вкатывает ?


MAxiMum   (2002-03-26 12:13:00) [3]

А что непонятного. Читай Help и всё. В самом рапространённом случае: ShellExecute(Handle, "open", "имя файла", "параметры запуска", "Текущия директория для программы", <режим окна> {SW_SHOWDEFAULT});


DikobraZ   (2002-03-26 12:12:00) [4]

uses ShellApi;- не забывай это!
...
ShellExecute(Handle, "open", "c:\Windows\notepad.exe", nil, nil, SW_SHOWNORMAL);

Дли текстового файла в блокноте:
ShellExecute(Handle,"open", "c:\windows\notepad.exe","c:\text.txt", nil, SW_SHOWNORMAL);

Показать папку: ShellExecute(Handle,"open","c:\archive", nil, nil, SW_SHOWNORMAL);

Открыть веб-сайт: ShellExecute(Handle, "open"," http://src.fitkursk.ru",nil,nil, SW_SHOWNORMAL);


AFROLOV   (2002-03-26 12:11:00) [5]

Все очень просто. Вот пример:
procedure TForm1.Button1Click(Sender: TObject);
var
result: Cardinal;
ExecString, ParamString: string;
begin
ParamString:="Par1=100";//Строка с параметрами
ExecString:="D:\Work\tmp\1.exe";//путь к файлу который надо запустить
result:=ShellExecute(0,"open",PChar(ExecString),PChar(ParamString),Nil,SW_SHOWNORMAL);//Собственно выполнение ShellExecute;
if (result<32) then
begin
...
//Обработка ошибок
...
end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо