Registriert seit: 18. Jan 2008
594 Beiträge
|
Re: WindowHandle über den Programmnamen herausfinden?
11. Jul 2008, 14:05
wie muss dass dann quellcodemäßig aussehen?
kann man diese funktion nicht irgendwie so umschreiben dass sie nicht mehr nach captions des windows sucht, sondern nach buttoncaptions im window?
Delphi-Quellcode:
function GetProcessHandleFromID(ID: DWORD): THandle;
begin
result := OpenProcess(SYNCHRONIZE, False, ID);
CloseHandle(result);
end;
function MyFindWindow(ClassName, WindowTitle: string): integer;
var
NextHandle: HWND;
WinTitle, WinClass: array[0..255] of Char;
begin
Result := 0;
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST); // erstes Fenster ermitteln
while NextHandle > 0 do // falls Fenster gefunden
begin
// Fenster Titel, Klassennamen ermitteln
GetWindowText(NextHandle, WinTitle, SizeOf(WinTitle));
GetClassName(NextHandle, WinClass, SizeOf(WinClass));
// Überprüfung, ob Anfang der Strings übereinstimmen
if (Copy(WinTitle, 1, Length(WindowTitle)) = WindowTitle) and
(Copy(WinClass, 1, Length(ClassName)) = ClassName) then
begin
// Fenster gefunden, abbrechen
Result := NextHandle;
Break;
end
else
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT); // nächstes Fenster ermitteln
end;
end;
Marco Tröger
|
|
Zitat
|