Anderes Programm fernseutern...?



  • Hallo,
    ich habe eine Anwendung geschrieben die (fast) perfekt funktioniert und zwar soll diese eine andere Anwendung fernsteuern.
    Um das zu ermöglichen mache ich das in etwa so:

    PressRightMouseButton();
    SendSpacebar();
    PressTabs( 3 );
    WriteRandomString();
    PressEnter();
    

    So ähnlich halt... Klappt auch! Nun, das Problem ist ich sende die Tasten per "keybd_event" oder "mouse_event". Gibt es eine Möglichkeit das eleganter zu machen? Denn bewege ich meine Maus oder schließe das zu steurnde Fenster gibts Probleme. Kann ich das nicht so programmieren, dass er auch ohen dass das Fenster geöffnet ist diese Befehle sendet... Wenn ja wie? Würde mich sehr interessieren.

    Viele Grüße

    BlablablaBlub



  • Welches Programm ist das? Möglicherweise bietet das Produkt ein API an, so daß du dir diese Trickserei ersparen kannst.
    Sollte das nicht der Fall sein, dann wäre es IMHO eleganter, direkt Messages zu versenden. Allerdings bin ich nicht sicher, ob das in Windows Vista prozeßübergreifend möglich ist.



  • Für das Programm existiert leider keine Api 😞

    HWND Channels = FindWindowEx( Panel, 0, "TTreeView", 0 );
    Sleep( 1000 );
    PostMessage( Channels, WM_CONTEXTMENU, 0, 0 );
    

    Ich versuche z.B. so das Contexmenu des Programms aufzurufen, jedoch funktioniert das nicht im Sinne von: Passiert nichts!

    Wie wirds richtig gemacht? Danke



  • Ich versuche es nun über VK_MENU... Aber das klappt leider nicht -> Nix passiert.

    Warum?

    WM_CLOSE senden funktioniert z.B.



  • Hi,

    Danke für eure Hilfe, aber ich habe noch eine Frage: Und zwar habe ich mehrere Eingabemöglichkeiten mit dem gleichen Classnamen. Gibt es evtl. noch eine Funktion FindNextWindowEx ich bräuchte nämlich auch noch das Zweite, allerdings kann ich diese nicht unterscheiden sondern nur anhand des Classnames zuordnen. Ich habe es mit der Adresse versucht. So klappts, allerdings ändert sich diese. Also was tun? Vielen Dank

    Gruß

    BlablablaBlub



  • Bei FindWindowEx kannst du einfach das letzte Handle übergeben. Dann bekommst du das nächste Control


Anmelden zum Antworten