Funktionsaufruf über anderes Programm



  • Hallo,

    gibt es eine Möglichkeit, in einem Programm
    (z. B. Microsoft Word)
    einen Button zu betätigen, der in meiner
    Client-Anwendung eine bestimmte Funktion
    aufruft und ausführt?
    Hat vielleicht einer nen Tipp oder link dazu?

    tich



  • hi,

    klar geht das. man kann z.b. mit FindWindow(), EnumWindows() usw. den button finden und dann mit SendMessage() die entsprechenden messages hinschicken. du kannst auch die maus per programm dahinlenken und dann WM_LBUTTONDOWN, WM_LBUTTONUP hinschicken oder so ähnlich.

    -> pittbull



  • heißt das, ich schicke dann ne Nachricht an den Button, was der machen soll, oder wie?
    und wenn der angeklickt wird, führt er die Funktion aus meiner Client-Anwendung aus?
    Eigentlich hatte ich das anders gedacht: Der Button schickt ne Nachricht an den Client und dadurch wird die Funktion ausgeführt.



  • Wenn du es so herum machen willst, bist du IMHO in einem VB Forum besser aufgehoben, da du im gesamten MS-Office eigentlich ziemlich viel über diese Makros machen kannst. Eventuell, besitzt aber die MS-Office OLE Schnittstelle solche Functionen. D.h. du kannst deine Anwendung eventuell als OLE - Client aufbauen. Ich habe aber selber noch keine Doku für diese gefunden.



  • Original erstellt von tich:
    heißt das, ich schicke dann ne Nachricht an den Button, was der machen soll, oder wie?
    und wenn der angeklickt wird, führt er die Funktion aus meiner Client-Anwendung aus?
    Eigentlich hatte ich das anders gedacht: Der Button schickt ne Nachricht an den Client und dadurch wird die Funktion ausgeführt.

    äääh... nicht ganz. du simulierst damit clicks auf den button. was dann ausgeführt wird, ist der code der auch sonst ausgeführt würde, wenn jemand manuell den button klickt. wenn du zusätzlich noch was anderes machen (und/oder den klick unterdrücken) willst, dann kannst du z.b. einen sogenannten 'hook' installieren. das ist eine funktion (in einer dll) die aufgerufen wird, bevor der button-klick das programm erreicht, für das er gedacht war. wie das im einzelnen funktioniert steht im msdn. stichwort setwindowshookex, WH_GETMESSAGE, WH_CALLWNDPROC.

    -> pittbull



  • Ich will ja keinen click simulieren.
    Ich versuchs nochmal anders zu beschreiben:
    Ich starte MS Word, betätige dort einen Button, und dadurch wird eine Funktion in meiner Client-Anwendung ausgelöst.
    Mehr solls ja eigentlich gar nicht sein.
    Ich hab nur noch keinen Ansatz, wie.


Anmelden zum Antworten