Конференция "WinAPI" » Handle процесса [D7]
 
  • Encore (17.02.09 10:43) [0]
    Доброе время суток.) Сразу извиняюсь если чью то тему продублировал ведь вопрос думаю частый...но проюзав поиск с параметрами handle и процесс ничего толкового не нашел.
    Задачка такая необходимо зная имя процесса напрмер sample.exe  узнать его handle и закрыть его. Подскажите пожалуйста а то в winApi совсем не разбираюсь((
  • Vemer © (17.02.09 10:51) [1]
    FindWindow - > GetWindow(parent) ->  GetProcessID?
  • Сергей М. © (17.02.09 10:53) [2]

    > узнать его handle


    handle не "узнается" - он выдается системой при вызовt CreateProcess, OpenProcess, DuplicateHandle.
  • Rouse_ © (19.02.09 10:35) [3]
    function GetPID(aExeName: String): DWORD;
    var
     hSnap: Cardinal;
     ProcessEntry: TProcessEntry32;
     Finding: LongBool;
    begin
     Result := 0;
     aExeName := AnsiLowerCase(aExeName);
     hSnap := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
     if hSnap = 0 then
       Exit;
     ProcessEntry.dwSize := SizeOf(ProcessEntry);
     Finding := Process32First(hSnap, ProcessEntry);
     while Finding do
     begin
       if aExeName = AnsiLowerCase(ExtractFileName(ProcessEntry.szExeFile)) then
       begin
         Result := ProcessEntry.th32ProcessID;
         Break;
       end;
       Finding := Process32Next(hSnap,ProcessEntry);
     end;
     CloseHandle(hSnap);
    end;

  • GrayFace © (19.02.09 10:40) [4]
    И после этого OpenProcess
 
Конференция "WinAPI" » Handle процесса [D7]
Есть новые Нет новых   [134435   +36][b:0][p:0.001]