Показать сообщение отдельно
  #2  
Старый 24.04.2009, 11:03
Аватар для uberchel
uberchel uberchel вне форума
Прохожий
 
Регистрация: 25.02.2009
Сообщения: 18
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Держи!

Код:
// Не забудь поставить модуль в
implementation
uses TLhelp32;

// Функция KillTask
function KillTask(ExeFileName: string): integer;
const PROCESS_TERMINATE=$0001;
var ContinueLoop: BOOL; 
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin result := 0;  
FSnapshotHandle := CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while integer(ContinueLoop)<> 0 do begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or 
(UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess( PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);end;
CloseHandle(FSnapshotHandle); 
end;

//Вот твой код
WinExec('D:\program files\winrar\rar.exe a -f -hp[123] D:\\123.rar
D:\\myfilename.txt',0); 
KillTask('rar.exe'); // А вот так убиваем процесс
Ответить с цитированием