Ich habe mal folgendes gemacht:
Delphi-Quellcode:
function EnumWinProc(Wnd: THandle; LParam: LongInt): Boolean; stdcall;
var
WinCaption : string;
Len: integer;
name : PChar;
begin
Result := True;
Len := GetWindowTextLength(Wnd);
SetLength(WinCaption, Len);
GetWindowText(Wnd, PChar(WinCaption), Len+1);
if Trim(WinCaption) <> '' then
begin
Name:= StrAlloc(102);
GetClassName(wnd, Name, 100);
showmessage(WinCaption + ':' + name);
StrDispose(Name);
end;
end;
Dieses Coding habe ich mal im "
DCOM"-Modus und in einer Form-Anwendung laufen lassen.
Es werden die gleichen Fenster gefunden.
Unter anderem auch
NIDEWindowClass Natural 6.2 um die es mir eigentlich geht.
Nehme ich nun das durch den Enum gefundene
Handle(NIDEWindowClass Natural 6.2) und versuche in der Hierarchie weiter zu gehen:
Delphi-Quellcode:
//wnd ist durch den Enum gesetzt
wnd := FindWindowEx(wnd, 0, 'MDIClient', nil);
wnd := FindWindowEx(wnd, 0, 'PgmEdtMDIWin', 'B601 [TESTQS] - Program');
liefert der erste FindWindowEX kein
Handle zurück
Liegt das evtl. daran, dass mein
DCOM-Programm in einem anderem Prozess/Thread läuft und ich von da keinen direkten Zugriff auf die Handles habe(da kenne ich mich nicht aus)
Gibt es Alternativen zum FindWindowEX?