Hello Folks >I retur lämnar detta API hProcess , dwProcessID, hThread och dwThreadID Lite delphi kod som jag tror du kan använda. Har inte Visual Basic på den dator som jag är på just nu. Men jag kanske kan hjälpa dig ändå.API Gurus Handler ?
Att ta reda på Handlern för ett öppnat Fönster är
som en finne i rö..... Man kan ju använda EnumWindows
men det är också lite stökigt om man vill komma åt
just ett visst fönster. Jag har gjort en Shell funktion som
öppnar ett program. API CreateProcessA.
I retur lämnar detta API hProcess , dwProcessID, hThread och dwThreadID
Fråga kan jag med något API Trix få fram Windowhandler genom
att skicka någon av dessa ovan nämnda ?
undrar
SvenSv: API Gurus Handler ?
>
>Fråga kan jag med något API Trix få fram Windowhandler genom
>att skicka någon av dessa ovan nämnda ?
Du kan ju använda EnumThreadWindows istället för att begränsa uppräkningen till fönster från just den tråden. För att detta ska fungera krävs naturligtvis att programmet skapar sitt användargränssnitt på huvudtråden.
MSSv: API Gurus Handler ?
function GetWndFromPid(PID: DWORD): HWND;
type
PSearch = ^TSearch;
TSearch = record
PID: DWORD;
Wnd: HWND;
end;
var
SearchRec: TSearch;
function EnumWindowsProc(Wnd: HWND; Res: PSearch): Boolean; stdcall;
var
WindowPid: DWORD;
begin
WindowPid := 0;
GetWindowThreadProcessId(Wnd, @WindowPid);
if WindowPid = Res^.PID then
begin
Res^.Wnd := Wnd;
Result := False;
end
else
Result := True;
end;
begin
SearchRec.PID := PID;
SearchRec.Wnd := 0;
EnumWindows(@EnumWindowsProc, Integer(@SearchRec));
Result := SearchRec.Wnd;
end;Sv: API Gurus Handler ?
Några förslag:
GetThreadWindow kanske funkar eftersom du har hThread och dwThreadID.
FindWindow borde funka ifall du har namnet på fönstret (titeln), du kan då ta VbNull på argument som du inte vet (t.ex Classname) och bara söka på titeln.
Du kan också kolla in mitt WinlOOk program, där finns det en massa API-funktioner som kan passa det du söker efter, med WinlOOk har flera sätt att leta reda på fönster (både .exe filen och source filerna finns med).
WinlOOk 1.0 finns under filarean Api-windows.