![]() |
Anstatt ID den Namen verwenden?
Hallo :-D
mit dem Beispiel kann ich ein Edit in einem anderen Programm auslesen. Ich möchte im nächsten Schritt dann auch reinschreiben können. Aber zunächst einmal habe ich Probleme mit der ID da die sich ja immer ändert. Kann man stattdessen nicht auch den Editnamen verwenden? Wenn ja, wie geht das?
Delphi-Quellcode:
Viele Grüsse
procedure TForm1.Button5Click(Sender: TObject);
var hWnd, hEdit: cardinal; buffer: array[0..1204] of Char; begin hWnd := FindWindow(nil, 'Fax 1.1'); hEdit := GetDlgItem(hWnd, 788380); // 788380 ID des Edit SendMessage(hEdit, WM_GETTEXT, sizeof(buffer), Integer(@buffer)); ShowMessage(String(buffer)); end; Mirco |
Re: Anstatt ID den Namen verwenden?
Wozu erst über 'nen Namen suchen ... wie wäre es mit 'ner Konstante?
Code:
Vorzeile: den zu suchenden Namen kann man auch falsch schreiben, ebenfalls wie die ID.
Const [color=#ff0000]MeinEdit[/color] = 788380;
procedure TForm1.Button5Click(Sender: TObject); var hWnd, hEdit: cardinal; buffer: array[0..1204] of Char; begin hWnd := FindWindow(nil, 'Fax 1.1'); hEdit := GetDlgItem(hWnd, [color=#ff0000]MeinEdit[/color]); SendMessage(hEdit, WM_GETTEXT, sizeof(buffer), Integer(@buffer)); ShowMessage(String(buffer)); end; Bei der Konstannte gibt es die ID nur einmal, also leicht zu ändern und bei Konstantennamen kann man sich nicht so einfach verschreiben, da dort meißtens der Compiler meckert ^^ |
Re: Anstatt ID den Namen verwenden?
Zitat:
|
Re: Anstatt ID den Namen verwenden?
Hallo,
merkwürdig, ich muss mir das alles nochmal genau ansehen. Erstmal Danke Grüße Mirco |
Re: Anstatt ID den Namen verwenden?
Liste der Anhänge anzeigen (Anzahl: 1)
@Luckie
Zitat:
Überprüft mit Winspy (Thomas Stutz) Bzw. bekomme ich den Inhalt ja nicht mehr angezeigt. Viele Grüsse Mirco |
Re: Anstatt ID den Namen verwenden?
@Luckie,
du hast doch recht, in der Combobox steckt noch ein Edit, diese ID verändert sich nie. @all Nur wenn ich diese ID angebe kann ich nix mehr auslesen, warum? Wieso ist da überhaupt ein Edit drinnen? :wall: Viele Grüsse Mirco |
Re: Anstatt ID den Namen verwenden?
Aha. Ja das ist ein Delphi-Programm mt der VCL geschrieben. Und die VCL vergibt keine IDs (Siehe OI, dort kan man keine vergeben), sondenr die werden zur Laufzeit aus dem Handle generiert. Und wie du siehst, sind Handle und IControlID identisch. Das Edit, was du gefundne hast ist Bestandteil der Combobox und da das Windows ist und Windows in C geschruieen wurde mit einem C Kompiler ohne VCL, hat das Edit eine feste ID, weil sie so vergeben wurde.
Du köntest aber den Klassennanemn nehmen, wenn es denn nur eine Combobox dort gibt. |
Re: Anstatt ID den Namen verwenden?
*heul*
neee es gibz 7 Comboboxen. Gruss Mirco |
Re: Anstatt ID den Namen verwenden?
Moin Mirco,
dann könntest Du noch versuchen die ComboBox, zusätzlich, über ![]() Die Position wird sich ja wohl nicht ändern. |
Re: Anstatt ID den Namen verwenden?
Hallo Christian
Also anhand Position die Id rausbekommen? Ich versteh das grad nicht so ganz. Mirco |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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