AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Text aus Drittprogramm auslesen

Ein Thema von th_bone · begonnen am 29. Nov 2005 · letzter Beitrag vom 30. Nov 2005
Antwort Antwort
th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#1

Text aus Drittprogramm auslesen

  Alt 29. Nov 2005, 11:32
Hi,

im Anhang habe ich einen Screenshot von WinSpy - dort sehe ich ja den Text "Not Connected" von
einer Drittapplication

wie stellt WinSpy an, diesen Text auszulesen ? die ControlID scheint die Konstante zu
sein, die immer gleich bleibt - aber wie komme an diesen Text ran ?
handle des Fensters etc. ist kein problem

Danke

Ralf
Miniaturansicht angehängter Grafiken
static_169.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Text aus Drittprogramm auslesen

  Alt 29. Nov 2005, 11:34
Mit MSDN-Library durchsuchenGetDlgItem kommst du an das Handle eines Child-Fensters, wenn du dessen ID kennst. Der Rest geht wie gehabt mit MSDN-Library durchsuchenWM_GETTEXT.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Text aus Drittprogramm auslesen

  Alt 29. Nov 2005, 11:38
Wow danke für die schnelle Antwort...

Ralf
  Mit Zitat antworten Zitat
th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Text aus Drittprogramm auslesen

  Alt 29. Nov 2005, 13:27
Hi,

so wie es aussieht brauche ich noch das parenthandle - wenn ich den wert manuell einsetze
dann funktioniert es - aber wie kann ich ihn automatisch ermitteln

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 hwnd, handle, parenthandle: thandle;
 buffer: array[0..1024] of Char;
begin
  hWnd := FindWindow(nil, 'Globalserver - Desktop Edition by Omega Research');
  handle := handlefromid(hwnd,5191);
  
  parenthandle:= {??? wie ermittle ich dieses ?};

  handle:=getdlgitem(parenthandle,5191); // parenthandle, controlid
  sendmessage(handle,WM_gettext,sizeof(buffer),Integer(@buffer));

  label1.Caption:='Status: '+string(buffer);
end;
Danke für die Hilfe

Ralf
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Text aus Drittprogramm auslesen

  Alt 29. Nov 2005, 14:10
Die ID ändert sich ja nicht. Es spricht also nichts dagegen diese hard zu coden. Ansonsten bekommst du das Eltern-Fenster mit MSDN-Library durchsuchenGetParent. Aber das hast du doch schon mit FindWindow gefunden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Text aus Drittprogramm auslesen

  Alt 29. Nov 2005, 14:53
Hi,

ja Getparent war die Lösung - DANKE - aber das Handle von Findwindow bei jedem neustart komplett anderst (ich hab mal einen screenshot von dem Prog angehängt) - vielleicht liegts ja daran das der
text den ich auslese in einer groupbox ist ?! das einzige was ich als konstante festgestellt
habe war die controlid

Hier nochmal der Code der letztlich zum Ziel führt (falls jemand ein ähnliches Problem hat)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 hwnd, handle, parenthandle: thandle;
 text: dword;
 buffer: array[0..1024] of Char;
begin
  hWnd := FindWindow(nil, 'Globalserver - Desktop Edition by Omega Research');
  handle := handlefromid(hwnd,5191);
  parenthandle:=getparent(handle) ;
  handle:=getdlgitem(parenthandle,5191); // parenthandle, controlid
  sendmessage(handle,WM_gettext,sizeof(buffer),Integer(@buffer));

  label1.Caption:='Status: '+string(buffer);
end;
Nochmals danke

Tschüss

Ralf
Miniaturansicht angehängter Grafiken
fenster_100.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Text aus Drittprogramm auslesen

  Alt 29. Nov 2005, 17:37
Ich versteghe den Code immer noch nicht. Das das Fensterhandle jedes mal anders ist, ist klar. Aber das ist doch kein Problem, da sich ja offensichtlich der Fenstertitel nicht ändert. Also hast du schon mal das Handle des übergeordneten Fensters. Dann klannst du dir mit getDlgItem doch das Handle des Kindfensters holen. Ich verstehe nicht, warum du das Parent brauchst, wenn du doch schon das Child gefunden hast.

Und was macht handlefromid? Kölingt so, als wenn es genau das selbe wäre wie GetDlgItem. Wenn dem so ist, dann drehst du dich hier:
Delphi-Quellcode:
handle := handlefromid(hwnd,5191);
parenthandle:=getparent(handle) ;
handle:=getdlgitem(parenthandle,5191);
einmal im Kreis: ERrst hilst du dir das handle des Childfensters, dann des Elternfensters und vom Elternfenster wirde das handle des gleichen Kindfensters. Was soll das?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Text aus Drittprogramm auslesen

  Alt 30. Nov 2005, 13:30
Hi

irgendwan sollte man auch mal Pause machen...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 hwnd, handle, parenthandle: thandle;
 buffer: array[0..1024] of Char;
begin
  hWnd := FindWindow(nil, 'Globalserver - Desktop Edition by Omega Research');
  label1.caption:='FindwindowHandle '+inttostr(hwnd);
  handle := handlefromid(hwnd,5191);
  label2.caption:='HandlefromID '+inttostr(handle);
  sendmessage(handle,WM_gettext,sizeof(buffer),Integer(@buffer));

  label1.Caption:='Status:'+string(buffer);
end;
das reicht natürlich aus...

'HandelfromID' ist eine function die ich hier im Board mal gefunden habe, die anhand der ControlID
den Handle ermittelt

getdlgitem ging aber nicht - keine ahnung was hier der Unterschied zu HandlefromID ist...

Tschüss und nochmals Danke

Ralf
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz