
11.12.2008, 11:03
|
 |
Illuminati
|
|
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
|
|
Есть волшебные функции SuspendThread и ResumeThread.
Пример кода:
Код:
Var
ProgramFileName:String;
sti:TStartupInfo;
lpPi:TProcessInformation;
begin
ZeroMemory(@Sti,Sizeof(STI));
STi.cb:=Sizeof(STI);
ZeroMemory(@lpPi,Sizeof(LpPi));
if not CreateProcess(nil,PChar(ProgramFileName),nil,nil,false,0,nil,nil,StI,lpPI) then
begin
ShowMessage('Can not create process!');
Exit;
end;
SuspendThread(lppi.hThread); // "Заморозили" процесс
// Тут какие-то действия, проверки и т.д.
If CheckValid<>True then TerminateProcess(lppi.hProcess,0) // если проверка непрошла, тогда завершаем процесс
else // иначе
ResumeThread(lppi.hThread); // "Разморозили" процесс
end;
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
|