![]() |
Undokumentierter Sendmessage-Befehl
Moin liebe Delphi-Gemeinde
bin immer noch am übersetzen eines VB-Codes und hänge nun fest. Folgende Zeile macht mir Kopfzerbrechen: in VB:
Code:
meine Delphi-Lösung:
lFormCaptionHeapAddress = SendMessage(hwnd, VBM_WINDOWTITLEADDR, ByVal 0&, ByVal 0&)
Delphi-Quellcode:
lFormCaptionHeapAddress:=SendMessage(hwnd, VBM_WINDOWTITLEADDR, 0, 0);
VBM_WINDOWTITLEADDR soll angeblich ne undokumentierte Konstante mit einem Wert von $1091 sein und sollte die Adresse der Form-Caption im Heap liefern.. bei mir leider immer 0.. Hwnd ist das Handle der Form.. Hat das ByVal irgendwas zu sagen?? Kennt jemand diese Abfrage, und wenn ja, wie habt ihr das gelöst?? Danke! |
AW: Undokumentierter Sendmessage-Befehl
Code passt soweit. Auf welchen Systemen soll das denn laufen und vor allem - wozu brauchst du das?
|
AW: Undokumentierter Sendmessage-Befehl
das stammt aus ner VB-Routine, mit der man angeblich Labels aus ner beliebigen Form auslesen kann..
Zu finden unter: ![]() |
AW: Undokumentierter Sendmessage-Befehl
Moment. Heap? Aus dem Adressraum des eigene Prozesses? Warum so umständlich?
|
AW: Undokumentierter Sendmessage-Befehl
ja neee :lol:
nicht der eigene.. Labels aus ner fremden Anwendung... |
AW: Undokumentierter Sendmessage-Befehl
Such mal nach WM_GETTEXT. Allerdings bei Delphi Anwendungen funktioniert das nicht. Oder suchst du gerade dafür eine Lösung?
|
AW: Undokumentierter Sendmessage-Befehl
Moin Luckie!
WM_Gettext ist mir bekannt, funktioniert jedoch bei Labels nicht, da diese bekanntlich kein Handle besitzen. Ich hab mir schon nen Wolf gesucht, wie ich Labels aus ner fremden Applikation auslesen kann, aber nur der obige Link mit dem VB-Code scheint ne vernünftige Lösung zu sein.. |
AW: Undokumentierter Sendmessage-Befehl
Zitat:
"ThunderRT6FormDC"
Code:
gruss
'Make sure we are working with a VB Form hWnd
sClass = Space(256) lRet = GetClassName(hwnd, sClass, 255) sClass = Left(sClass, lRet) If Not sClass = "ThunderRT6FormDC" Then MsgBox "This function only works on VB RunTime 6 Forms ThunderFormRT6DC" Exit Sub End If |
AW: Undokumentierter Sendmessage-Befehl
Guten Morgen!
@ EWeiss: Das war mir schon klar.. Ich bin eben sehr optimistisch :glaskugel: und hoffte, das man das auch für ne Delphi-Form verwenden könnte.. Aber so wie's aussieht kann ich das auch vergessen.. Hintergrund des Ganzen ist, dass wir in der Firma ein Hypersuperoberwichtiges Programm am Laufen haben, dessen Quellcode leider von einem ehemaligen Mitarbeiter mutwillig zerstört wurde und somit nicht mehr verfügbar ist, auch nicht in Code-Fragmenten. Das Proggi tut ja seinen Dienst, und nun sollten einige Erweiterungen dazu geschrieben werden, um das Handling dieses Proggs etwas zu erleichtern. Allerdings sind alle Text-Ausgaben, die das Programm tätigt, nicht in Edits oder Memos (Leider, denn dann wär's ja ein Leichtes) sondern in Labels... Und das ist das Problem. Um die Sache "fernzusteuern" muss ich den Inhalt dieser Labels kennen. Ich habe auch die Vorschläge in ![]() Die grosse Frage lautet also: Wie komme ich also an die Captions diese Label?? |
AW: Undokumentierter Sendmessage-Befehl
Wenn es wirklich Labels sind, sieht es schlecht aus. Bei StaticText gäbe es noch die Möglichkeit, die Fensterhandles zu ermitteln und zu schauen, was da was ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 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-2025 by Thomas Breitkreuz