Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Undokumentierter Sendmessage-Befehl (https://www.delphipraxis.net/162760-undokumentierter-sendmessage-befehl.html)

PinkFloydFan 4. Sep 2011 22:20

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:
lFormCaptionHeapAddress = SendMessage(hwnd, VBM_WINDOWTITLEADDR, ByVal 0&, ByVal 0&)
meine Delphi-Lösung:

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!

Mithrandir 4. Sep 2011 22:23

AW: Undokumentierter Sendmessage-Befehl
 
Code passt soweit. Auf welchen Systemen soll das denn laufen und vor allem - wozu brauchst du das?

PinkFloydFan 4. Sep 2011 22:27

AW: Undokumentierter Sendmessage-Befehl
 
das stammt aus ner VB-Routine, mit der man angeblich Labels aus ner beliebigen Form auslesen kann..

Zu finden unter:

http://www.codeguru.com/forum/archiv.../t-304429.html

Luckie 4. Sep 2011 22:35

AW: Undokumentierter Sendmessage-Befehl
 
Moment. Heap? Aus dem Adressraum des eigene Prozesses? Warum so umständlich?

PinkFloydFan 4. Sep 2011 22:39

AW: Undokumentierter Sendmessage-Befehl
 
ja neee :lol:

nicht der eigene..

Labels aus ner fremden Anwendung...

Luckie 4. Sep 2011 23:10

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?

PinkFloydFan 4. Sep 2011 23:16

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..

EWeiss 5. Sep 2011 01:04

AW: Undokumentierter Sendmessage-Befehl
 
Zitat:

aus ner beliebigen Form auslesen kann
Dir ist aber schon klar das diese Sendmessage wenn überhaupt nur mit VB6 Formen (HWND) funktioniert?
"ThunderRT6FormDC"

Code:
'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
gruss

PinkFloydFan 5. Sep 2011 07:02

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 http://www.delphipraxis.net/86561-zu...wendung-2.html durchprobiert, was ja an sich auch funktioniert. Nur kenne ich die Namen der Labels nicht. Label1, Label2 usw sinds jedenfalls nicht. Die können ja jeden X-beliebigen Namen haben, zB LblIrgendwas oder ArtikelNrLabel oder sonst was...

Die grosse Frage lautet also:

Wie komme ich also an die Captions diese Label??

DeddyH 5. Sep 2011 07:03

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 18:46 Uhr.
Seite 1 von 4  1 23     Letzte »    

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