Hallo,
wie bekomme ich das Fensterhandle wenn ich nur den ExeName hab?
Hab hier schon alles durchsucht aber irgendwie nicht das passende gefunden.
Vielleicht hab ich auch einfach nur die flaschen Keywords verwendet
Ich brauch das Fensterhandle um das Programm zu minimieren.
Kenne allerdinds nur den Exe- nicht den Festernamen.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| procedure TForm1.TimerOnTimer(Sender: TObject);
function IsRunning(Exe: PChar):hwnd; var proc: PROCESSENTRY32; hSnap: HWND; looper: BOOL; begin result := 0; proc.dwSize:= SizeOf(proc); hSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0); looper:= Process32First(HSnap, Proc); while integer(looper)<> 0 do begin if ExtractFileName(proc.szExeFile)= ExtractFileName(Exe) then begin result := hsnap; break; end else Looper:= Process32Next(hSnap, proc); end; CloseHandle(hSnap); end;
var h: Hwnd; s: string; i: Integer; begin s := List.Strings[TTimer(Sender).tag-1]; s := copy(s,1,pos('=',s)-1); h := IsRunning(PChar(s)); if h = 0 then begin ShellExecute(0, nil, PChar(s), nil, nil, SW_SHOW); Sleep(5000); end; CloseWindow(); end; |
Hoffe ihr könnt mir weiterhelfen.
Schönes Wochenende,
Stoffel