Einzelnen Beitrag anzeigen

golisan

Registriert seit: 17. Jan 2007
43 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Taste senden/DCOM

  Alt 8. Jun 2012, 15:26
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?
  Mit Zitat antworten Zitat