Delphi - [решено] Работа с exe'шками
-
Snake750
Delphi - [решено] Работа с exe'шками
Дело вот в чем.Хочу сделать программу ккоторая будет запускать и завершать определенные программы.а как прорасать в делфи чтобы при нажатий определенной кнопки на форме я не знаю.короче кто знает напишите какую каоманду использовать для запуска exeшника и для его завершения
-
CJ F.A.N.
Re: Delphi - [решено] Работа с exe'шками
Вообще, для запуска ЕХЕ используется команда WinExec ('имя программы') . Еще можно использовать shellexecute (надо добавить в раздел Uses модуль shellapi. Завершать можно командой PostMessage(handle завершаемого приложения,WM_CLOSE,0,0);
вот например код:
function closeEXE (Prog_name: string): boolean;
var
h: handle;
begin
h:= FindWindow(nil, Prog_name);
if PostMessage(h,WM_CLOSE,0,0) then
result:= true
else
result:= false;
end;
Prog_name - это заголовок окна программы, которую надо завершить
Это конечно примитивный способ, но вполне достаточно и его, все конечно зависит от конкретных условий
вот например код:
function closeEXE (Prog_name: string): boolean;
var
h: handle;
begin
h:= FindWindow(nil, Prog_name);
if PostMessage(h,WM_CLOSE,0,0) then
result:= true
else
result:= false;
end;
Prog_name - это заголовок окна программы, которую надо завершить
Это конечно примитивный способ, но вполне достаточно и его, все конечно зависит от конкретных условий

-
DillerInc
Re: Delphi - [решено] Работа с exe'шками
Snake750, можно использовать WinAPI:
CreateProcess -- для создания процесса/запуска приложения
Код:
TerminateProcess -- для завершения процесса/приложения
Код:
CreateProcess -- для создания процесса/запуска приложения
Код:
Код: Выделить всё
var
sInfo : TStartupInfo;
pInfo : TProcessInformation;
OpenDlgBox : TOpenFileName;
begin
// Создание процесса
if CreateProcess(OpenDlgBox.lpstrFile, nil, nil, nil, False, 0, nil, nil, sInfo, pInfo) then
// бла-бла-бла
end;TerminateProcess -- для завершения процесса/приложения
Код:
Код: Выделить всё
procedure KillProcess(hProcess:DWORD); // Процедура убивания созданного нами процесса
var
ExitCode : UINT; // Статус завершения определённого процесса
begin
if GetExitCodeProcess(hProcess, ExitCode) = True then
TerminateProcess(hProcess, ExitCode);
end; // KillProcess-
Snake750
Re: Delphi - [решено] Работа с exe'шками
Че то я ничего не понял.Можете написать на конкретном примере:при нажатии первой кнопки на форме запускается определенное приложение;при нажатии второй кнопки ЭТО же приложение завершается.Хотелось бы если вы бы написали на каком нибудь конкретном рабочем примере
-
XCodeR
-
Snake750
Re: Delphi - [решено] Работа с exe'шками
Спасибо XCodeR.С запуском я разобрался.А как теперь завершить запушенный процесс??
-
Snake750
Re: Delphi - [решено] Работа с exe'шками
Цитата Snake750:
А как теперь завершить запушенный процесс??
...вам ещё разжевать и в рот положить?
Процедура для завершения процесса приведена мной выше.Ей просто надо передать описатель созданного процесса -- его handle.
А как теперь завершить запушенный процесс??
Delphi - [решено] Работа с exe'шками
...вам ещё разжевать и в рот положить?
Процедура для завершения процесса приведена мной выше.Ей просто надо передать описатель созданного процесса -- его handle.
-
XCodeR
Re: Delphi - [решено] Работа с exe'шками
Цитата DillerInc:
Ей просто надо передать описатель созданного процесса -- его handle.
..вам ещё разжевать и в рот положить?:
Т.е. то, что возвращает функция CrateProcess.
Ей просто надо передать описатель созданного процесса -- его handle.
Delphi - [решено] Работа с exe'шками
..вам ещё разжевать и в рот положить?:
Т.е. то, что возвращает функция CrateProcess.