Показать сообщение отдельно
  #2  
Старый 04.11.2012, 19:25
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от kudesnik
подскажите почему функция при втором вызове не убивает процесс?
т.е. есть 1.exe и 2.exe. оба запущены. при вызове DebugKillProcess(GetProcessId('1.exe')); процесс закрывается. еще раз вызываем DebugKillProcess(GetProcessId('2.exe')); процесс не закрывается
Ну так ты обрабатывай ошибки вместо того чтобы при ошибках тихонько выходить по Exit.
Т.е. вместо, например, такого:
Код:
if DbgUiConnectToDbg() <> STATUS_SUCCESS then Exit;
Делай примерно так:
Код:
var
  err: DWORD;
.....
begin
.....
  err := DbgUiConnectToDbg();
  if err <> STATUS_SUCCESS then
    raise Exception.CreateFmt('Ошибка №%d: "%s"', [err, SysErrorMessage(err)]);

p.s. И чем не подходит завершение процесса через обычный TerminateProcess ?
Ответить с цитированием