Seite 1 von 1

[Win32] Button in ein fremdes Fenster einbauen

Verfasst: 15.02.2006 14:40
von real
Hi,

gibt es eine Möglichkeit, in ein gestartetes Programm (mit Window) einen Button einzufügen und die Aktivitäten mit meinem Programm zu koppeln?

Ich frage, weil ich eine Anwendung habe die ein Fenster ist, in das ich (sozusagen nachträglich) zur Laufzeit eine Funktionalität hinzufügen will, die das Programm nicht mitbringt...

Verfasst: 15.02.2006 14:58
von AND51
Sollte es nicht gehen, dann denke ich mal für dich um die Ecke:

Erstell doch ein Rahmenloses Fenster, dass immer die Koordinaten des fremden Fensters plus die normale GadgetX() und GadgetY() Funktion hat.
Das Fenster selbst istdann nur so breit wie der Button. Und dann hälst du das Fenster mit seinem Button halt immer über das Fenster, zu dem du den Button hinzufügen möchtest.

Auf diese Weise kannst du dann auch mit den herkömmlichen Methoden, wie WindowEvent() abfragen, ob der Button betätigt wurde und einen entsprechenden Code ausführen lassen.

Verfasst: 22.02.2006 15:03
von Marvin
Ich würds mit FindWindow_() probiern. Beispiel:

Code: Alles auswählen

hWnd=FindWindow_(class$,title$)
CreateGadgetList(hWnd)
ButtonGadget(#Button,x,y,width,height,"Klick mich!")
Bei mir klappts aber irgendwie nich, der Button kommt, aber er wird nicht abgefragt (wegen events)... :?:

Verfasst: 22.02.2006 15:13
von ts-soft
Events anderer Prozesse lassen sich aus Sicherheitsgründen in Windows nicht
abfragen. Lediglich für Threads ist dies möglich, wenn explicit erlaubt wurde.

Verfasst: 22.02.2006 18:06
von 125
Hi,
stimmt so nicht ganz, ist möglich, man müsste eine DLL in betreffendes Programm injecten..... Dann kann man die kompletten events des Programms abfragen.... Fragt mich jetzt aber nicht wie man das macht :wink:

mfg
125

Verfasst: 22.02.2006 18:09
von ts-soft
125 hat geschrieben:Hi,
stimmt so nicht ganz, ist möglich, man müsste eine DLL in betreffendes Programm injecten..... Dann kann man die kompletten events des Programms abfragen.... Fragt mich jetzt aber nicht wie man das macht :wink:

mfg
125
Also stimmt es doch, was Du beschreibst ist Hacking und Illegal

Verfasst: 22.02.2006 19:07
von NicTheQuick
Was ist daran jetzt schon wieder illegal? Naja... /:->

Vielleicht funktioniert es, wenn man für den Button einen Callback erzeugt
mittels [c]SetWindowLong_()[/c] und den dann abfragt. Hab grad leider
keine Zeit das auszuprobieren.