Войти

Показать полную графическую версию : [решено] Работа с exe'шками


Snake750
07-08-2008, 23:06
Дело вот в чем.Хочу сделать программу ккоторая будет запускать и завершать определенные программы.а как прорасать в делфи чтобы при нажатий определенной кнопки на форме я не знаю.короче кто знает напишите какую каоманду использовать для запуска exeшника и для его завершения

CJ F.A.N.
08-08-2008, 10:29
Вообще, для запуска ЕХЕ используется команда 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
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
Че то я ничего не понял.Можете написать на конкретном примере:при нажатии первой кнопки на форме запускается определенное приложение;при нажатии второй кнопки ЭТО же приложение завершается.Хотелось бы если вы бы написали на каком нибудь конкретном рабочем примере

XCodeR
09-08-2008, 13:06
Snake750, вот (http://www.swissdelphicenter.ch/torry/showcode.php?id=990) пример запуска программы.

Snake750
09-08-2008, 13:28
Спасибо XCodeR.С запуском я разобрался.А как теперь завершить запушенный процесс??

DillerInc
09-08-2008, 16:36
А как теперь завершить запушенный процесс?? »
...вам ещё разжевать и в рот положить?
Процедура для завершения процесса приведена мной выше.Ей просто надо передать описатель созданного процесса -- его handle.

XCodeR
10-08-2008, 00:00
Ей просто надо передать описатель созданного процесса -- его handle. »
..вам ещё разжевать и в рот положить?:
Т.е. то, что возвращает функция CrateProcess.




© OSzone.net 2001-2012