AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Text von TEdit von einem Fenster auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Text von TEdit von einem Fenster auslesen

Ein Thema von Nicodius · begonnen am 14. Sep 2011 · letzter Beitrag vom 15. Sep 2011
Antwort Antwort
Seite 1 von 2  1 2      
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#1

Text von TEdit von einem Fenster auslesen

  Alt 14. Sep 2011, 15:37
Hallo Leute,

habe mich jetzt stundenlang daran versucht von einem TEdit(Siehe anhang, das Programm dass ich zum dafür verwendet habe um die handles rauszufinden, zeigt auch den text an den ich haben möchte(hannes,... ).

Es geht um eine Telefonsoftware von der ich ein Anzeigefenster bei einem Anruf bekomme dass informationen über den Anrufer anzeigt.
Nun sollte auf einem seperaten computer auf dem die applikation auch läuft der name auch angezeigt werden, den kann ich über dieses Fenster auslesen.


Also

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  WindowW, childc: HWND;
  WindowText: array[0..255] of char;
begin
  WindowW := FindWindowByTitle('LDAP');
  childc := FindWindowEx(WindowW,0,'TEdit',nil);
 // Form1.Text := IntToStr(WindowW) + ' ' + IntToStr(childc);
  GetWindowText(childc,WindowText,255);
  label2.Caption := windowText;
end;
WindowW bekommt ein Handle(das richtige, kann form caption von dem handle auslesen, das passt).
Allerdings childc hat immer einen wert von 0, habe alle möglichem methoden ausprobiert(von torry FindControlByNumber und hab probiert das edit zu bekommen). Nichts davon klappt. habs auch über wm_get text probiert.

Irgendeine Idee oder Hilfestellung?

vielen lieben Dank


Nico
Angehängte Grafiken
Dateityp: png InfoHandle.png (64,9 KB, 26x aufgerufen)
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: Text von TEdit von einem Fenster auslesen

  Alt 14. Sep 2011, 15:40
Das Tool kann Dir den entsprechenden Code doch automatisch generieren
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#3

AW: Text von TEdit von einem Fenster auslesen

  Alt 14. Sep 2011, 16:03
Vielen Dank!

Hatte noch eine sehr alte version von vor ein paar jahren Wunderbares update!

Danke für die schnelle Antwort.

lg Nico
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: Text von TEdit von einem Fenster auslesen

  Alt 14. Sep 2011, 16:16
Keine Ursache. Übrigens wirst Du mit GetWindowText nicht weit kommen:
Zitat:
To retrieve the text of a control in another process, send a WM_GETTEXT message directly instead of calling GetWindowText.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#5

AW: Text von TEdit von einem Fenster auslesen

  Alt 14. Sep 2011, 16:21
Leider, es wird wieder kein text ausgelesen(weder mit get window text noch mit sendmessage, wmgettext

Hab ich da einen Denkfehler?

Delphi-Quellcode:
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var
  i: Word;
  hChild: HWND;
begin
  hChild := 0;
  Result := 0;
  Dec(ChildNr);
  for i := 0 to ChildNr do
  begin
    hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil);
    if hChild = 0 then
      Break;
    Result := hChild;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  S: String;
  len : Integer;
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('TEditWindow','Findcall.pas');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'TPanel', nil);
    wndChild := FindWindowEx2(wndChild,'TPanel', 2);
    wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil);
    wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil);
    wndChild := FindWindowEx(wndChild, 0, 'TEditControl', nil);
    len := Sendmessage(wndChild, WM_GETTEXTLENGTH, 0, 0);
    SetLength(S, len);
    if wndChild <> 0 then
         SendMessage(wndChild, WM_GETTEXT, len+1, lparam(@S[1]));
    Label2.Caption := S;
    end;
  end;

Vielen Dank!
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: Text von TEdit von einem Fenster auslesen

  Alt 14. Sep 2011, 16:29
Ist denn wndChild <> 0?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#7

AW: Text von TEdit von einem Fenster auslesen

  Alt 14. Sep 2011, 16:40
Ja. also er geht ins if rein, und handle hat eine anständige nummer. Also ich glaub generell sollt es jetzt passen, aber der Text wird nicht ausgelesen.
Nico Müller

Geändert von Nicodius (14. Sep 2011 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#8

AW: Text von TEdit von einem Fenster auslesen

  Alt 15. Sep 2011, 08:37
Danke an alle!

Problem war dass ich ein TPanel zuviel hatte, hatte beim codegenerator anscheinend eine andere Komponente ausgewählt, könnte auf Unkonzentriertheit dem gestrigen Arbeitsende hin zurückzuführen sein

Danke!

lg Nico
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#9

AW: Text von TEdit von einem Fenster auslesen

  Alt 15. Sep 2011, 11:31
Das wäre doch vermutlich aufgefallen, wenn man auch die Zwischenergebnisse (wndChild) auswerten würde?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#10

AW: Text von TEdit von einem Fenster auslesen

  Alt 15. Sep 2011, 11:34
Wieso, wenn ein gültiges Handle drinsteht, aber eben nicht das des gesuchten Controls? Ich hatte diesbezüglich ja auch bereits nachgefragt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz