Доброе время суток. Уже второй день бьюсь над проблемой кое что не могу понять.. .
Суть проблемы: При отладке процесса (Мы запускаю любую внешнюю программу) происходит зависание ее при создании нового потока..
вот код..
Цитата:
if CreateProcess(nil, PChar(Path), nil, nil, False, DEBUG_ONLY_THIS_PROCESS or CREATE_NEW_CONSOLE, nil, nil,
SI, PI) then
try
while(cont) do
begin
cont:=WaitForDebugEvent(de, INFINITE);
case de.dwDebugEventCode of
EXIT_PROCESS_DEBUG_EVENT: begin cont:=FALSE; dwContinueStatus:=DBG_CONTINUE; end;
CREATE_THREAD_DEBUG_EVENT:dwContinueStatus:=DBG_CO NTINUE; //После попадания сюда висним...
EXIT_THREAD_DEBUG_EVENT:dwContinueStatus:=DBG_CONT INUE;
LOAD_DLL_DEBUG_EVENT:dwContinueStatus:=DBG_CONTINU E;
UNLOAD_DLL_DEBUG_EVENT:dwContinueStatus:=DBG_CONTI NUE;
OUTPUT_DEBUG_STRING_EVENT:dwContinueStatus:=DBG_CO NTINUE;
else
dwContinueStatus:=DBG_CONTINUE;
end;
ContinueDebugEvent(pi.dwProcessId, pi.dwThreadId, dwContinueStatus);
end;
except
end;
|
Как избежать зависания внешней программы?