SendMessage ?

jessy_musik

Mitglied
Hallo,

ich möchte ein VBProgramm schreiben, mit dem ich ein externes Programm öffnen und bearbeiten kann. Wenn das externe Programm gestartet wird, dann öffnet sich ein Fenster, indem man was eingeben soll. Ich habe keine Informationen über das Fenster, da ich den Quellcode des externen Programms nicht kenne. Das Fenster sieht aus wie eine InputBox. Es enthält also einen kleinen Text eine Textbox und einen &OK Button. Meine Frage ist jetzt, ob ich mit meinem VBProgramm etwas in die Textbox schreiben kann. Ich hab mir schon einiges über die SendMessage Funktion durchgelesen,aber irgendwie steige ich da nicht durch. Wäre nett wenn mir da jemand helfen könnte.

Danke jessy_musik
 
hallo
SendMessage und die ganzen API-Funktionen sind anfänglich etwas schwer zu verstehen. Um etwas an die Text-Box zu schicken, brauchst du das Handle der Textbox (die eigentlich auch nur ein Fenster ist). Schau dir dazu die Funktionen GetWindow, GetDlgItem, SendMessage mit WM_SETTEXT und vielleicht GetEnumChildWindows an. Mehr dazu unter http://www.vbarchiv.de und dort API-Referenz.
 
Alle Fenster haben ein Handle! Und da die Textbox auch ein Fenster ist, hat sie auch eins ;)

Was dir daraus hilft ist das: DesthWnd = FindWindow(vbNullString, "Destination") Aber mit dem Rest kannst du wahrscheinlich nicht viel anfangen.

Anstelle von EnumChildWindows kannst du übrigens auch mit GetWindow und GetNextWindow dein Control ausfindig machen. Du musst einfach immer überprüfen, ob die Klasse des gegenwärtigen Controls eine Textbox-Klasse ist (weiss nicht mehr, wie die in VB heisst), wenn nicht, untersuchst du einfach mittels GetNextWindow das nächste.
Viel Spass beim tüfteln ;-)
 

Neue Beiträge

Zurück