Einzelnen Beitrag anzeigen

Asatru

Registriert seit: 30. Mai 2007
Ort: Leipzig
78 Beiträge
 
#29

Re: FensterHandle über den Prozess ermitteln

  Alt 15. Apr 2009, 15:36
löl

recht Herzlichen Dank nun hat es geklappt


MFG

Edit: Mir hat sich grad ein Neues Problem eröffnet. Folgende Thematik:

Also ich will mir aus einem Programm 2 Zahlen holen (X und Y Koordinate) Nur das Problem ist, das eine andere Anwendung schon alle Fenster (Wo ich x und y hole) via WinAPI in seine eigenen Tabsheets gezogen hat! Muss ich dem Prog nun sagen das jeder Tab eigentlich eigenes Window ist? Wenn ja wie müsste ich an die Sache rangehen? MFG

Delphi-Quellcode:
function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
var
  Title, ClassName: array[0..255] of char;
  ClassName_gesucht: array[0..255] of char;
  xcor,ycor: String;
begin
  Result:= true;
  FillChar(Classname,SizeOf(Classname),#0);
  GetWindowText(wHandle, Title, SizeOf(Title));
  GetClassName(wHandle, ClassName, SizeOf(ClassName)); // Klassenname ermitteln
  Classname_gesucht := 'WindowsForms10.Window.8.app.0.378734a' ;
  if Classname = ClassName_gesucht then
      begin
            wHandle := FindWindowEx(wHandle, 0, 'WindowsForms10.SysTabControl32.app.0.378734a', nil);
            wHandle := FindWindowEx(wHandle, 0, 'WindowsForms10.Window.8.app.0.378734a', nil);
            wHandle := FindWindowEx(wHandle, 0, 'wxWindowClassNR', nil);
            wHandle := FindWindowEx(wHandle, 0, 'wxWindowClassNR', 'ID_PANEL1');
            wHandle := FindWindowEx(wHandle, 0, 'wxWindowClassNR', 'ID_PANEL2');
            wHandle := GetDlgItem(wHandle, 532);
                if wHandle <> 0 then
                    begin
                        xcor := PCHar('x: ' + GetWinText(wHandle));
                        lb.Items.Add(xcor);
                    end;
      end;



end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc, Integer(Listbox1));
end;
  Mit Zitat antworten Zitat