wäre machbar. Sinnvoller wäre es jedoch so (damit uppercase nicht so oft aufgerufen wird):
Delphi-Quellcode:
function TForm1.GetProcessID(sProcName: String): Integer;
var
hProcSnap: THandle;
pe32: TProcessEntry32;
begin
sProcName := AnsiUpperCase(sProcName);
result := -1;
hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
if hProcSnap = INVALID_HANDLE_VALUE then exit;
pe32.dwSize := SizeOf(ProcessEntry32);
{ wenn es geklappt hat }
if Process32First(hProcSnap, pe32) = true then
{ und los geht's: Prozess suchen }
while Process32Next(hProcSnap, pe32) = true do
begin
if pos(sProcName, AnsiUpperCase(pe32.szExeFile)) <> 0 then
result := pe32.th32ProcessID;
end;
CloseHandle(hProcSnap);
end;
also für "sProcName" nur ein einziges mal Uppercase (bzw. AnsiUpperCase) verwenden.