Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Работа с exe'шками (http://forum.oszone.net/showthread.php?t=113799)

Snake750 07-08-2008 23:06 870702

Работа с exe'шками
 
Дело вот в чем.Хочу сделать программу ккоторая будет запускать и завершать определенные программы.а как прорасать в делфи чтобы при нажатий определенной кнопки на форме я не знаю.короче кто знает напишите какую каоманду использовать для запуска exeшника и для его завершения

CJ F.A.N. 08-08-2008 10:29 870943

Вообще, для запуска ЕХЕ используется команда 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 - это заголовок окна программы, которую надо завершить

Это конечно примитивный способ, но вполне достаточно и его, все конечно зависит от конкретных условий ;)

DillerInc 08-08-2008 11:45 870991

Snake750, можно использовать WinAPI:
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 08-08-2008 23:48 871493

Че то я ничего не понял.Можете написать на конкретном примере:при нажатии первой кнопки на форме запускается определенное приложение;при нажатии второй кнопки ЭТО же приложение завершается.Хотелось бы если вы бы написали на каком нибудь конкретном рабочем примере

XCodeR 09-08-2008 13:06 871656

Snake750, вот пример запуска программы.

Snake750 09-08-2008 13:28 871661

Спасибо XCodeR.С запуском я разобрался.А как теперь завершить запушенный процесс??

DillerInc 09-08-2008 16:36 871731

Цитата:

Цитата Snake750
А как теперь завершить запушенный процесс?? »

...вам ещё разжевать и в рот положить?
Процедура для завершения процесса приведена мной выше.Ей просто надо передать описатель созданного процесса -- его handle.

XCodeR 10-08-2008 00:00 872020

Цитата:

Цитата DillerInc
Ей просто надо передать описатель созданного процесса -- его handle. »

..вам ещё разжевать и в рот положить?:
Т.е. то, что возвращает функция CrateProcess.


Время: 17:04.

Время: 17:04.
© OSzone.net 2001-