-
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