Конференция "WinAPI" » TerminateProcess
 
  • engine © (04.04.08 19:23) [0]
    Объясните неграмотному, что я делаю не так?
     
    lppe.dwSize := SizeOf(lppe);
     hSnapShot := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
     try
       if Process32First(hSnapShot, lppe) then
         while Process32Next(hSnapShot, lppe) do
           if ANSIUpperCase(lppe.szExeFile) = ANSIUpperCase(pName) then
             Win32Check(TerminateProcess(lppe.th32ProcessID, 0));
     finally
       CloseHandle(hSnapShot);
     end;



    Win32Check говорит, что неверный дескриптор.
  • Сергей М. © (04.04.08 19:40) [1]
    Конечно неверный !

    Ты разве дескриптор передаешь первым параметром ?
  • engine © (04.04.08 19:51) [2]
    А как тогда мне завершить процесс, зная его th32ProcessID?
  • Сергей М. © (04.04.08 19:52) [3]
    А справку ты уже проштудировал ?
  • engine © (04.04.08 19:58) [4]
    Сергей, спасибо за «тонкий» намек в первом ответе. Разобрался :)
  • engine © (04.04.08 20:07) [5]
    В догонку еще один вопрос:
    Если я с помощью OpenProcess получил хэндл и сделал ему TerminateProcess,
    обязательно ли после этого делать CloseHandle?
  • Сергей М. © (04.04.08 20:13) [6]
    Да.
Есть новые Нет новых   [134433   +21][b:0][p:0.001]