Tastatur eingabe simulieren



  • Hallo,
    ich brüchte ein bisschen hilfe beim simulieren einer tastatureingabe.

    Ich besitze die ID eines mit createprocess erstellten prozesses und möchte in diesem process/fenster jetzt 5xTabulator simulieren. Dannach sollte noch eine variable "getippt" (also die eingabe simuliert) werden (die 5 tabulator benutze ich, damit ich zu einem eingabe fenster gelange).

    Ich las etwas über sendkey oder keybd_event.

    Wenn mir jemand zum einen den code für einen tabulator tastendruck schreiben könnte und dann noch eine kurze erklärung zu einer geeigneten tastendruck funktion wäre das echt klasse.

    MfG Krauzi



  • Die Grundlagen von C++ sind dir vertraut?

    Hört sich für mich nur nach:

    Wenn mir jemand zum einen den code für einen tabulator tastendruck schreiben könnte und dann noch eine kurze erklärung zu einer geeigneten tastendruck funktion wäre das echt klasse

    Etwas dreißt,...

    Ich gebe dir keinen Code, sonst lernst du es ja auch nicht:

    http://www.codeproject.com/KB/cpp/sendkeys_cpp_Article.aspx
    http://www.rohitab.com/discuss/lofiversion/index.php/t23656.html
    http://forum.chip.de/programmieren/sendkey-93123.html

    Und hier die Eingabe in Google: http://www.google.at/search?rlz=1C1GGLS_deAT334AT335&sourceid=chrome&ie=UTF-8&q=Sendkeys+C%2B%2B

    Ohne nichts herzukommen und nach einem Code fragen ist für mich immer was eckelhaftes. Darauf kann man ja nicht stolz sein.

    Versuch das zu verstehen, wenn du Fragen hast, dann stell sie 🙂

    Da kann jemand gezielt dir helfen 😉

    Lg Mentras



  • ähm ok ich fang mal nochmal an einer anderen stelle an:

    ich habe die prozess id und möchte dann das fenster mit der id in den fordergrund bekommen.
    dazu verwendet man anscheinend SetForegroundWindow( HWND ).
    jetzt habe ich momentan aber nur ein HANDLE (hprocess).
    ich las, dass man zum umwandeln HWND proc = hprocess.toPointer( ); verwenden kann, nur das klappt bei mir nicht (error C2228: left of '.toPointer' must have class/struct/union), was ich nicht versteh. ich dachte HANDLE ist eine structur?

    Also: Wie komme ich von handle zu hwnd?

    EDIT:
    2. frage:
    Gibt es eine Möglichkeit gleich ne ganze string eingabe zu simulieren, ohne dafür jedes zeichen einzeln zu simulieren?


  • Administrator

    Das ist WinAPI und gehört ins WinAPI Forum! Das wurde dir glaub ich inzwischen schon 3 mal gesagt!

    Krauzi schrieb:

    ich las, dass man zum umwandeln HWND proc = hprocess.toPointer( ); verwenden kann, nur das klappt bei mir nicht (error C2228: left of '.toPointer' must have class/struct/union), was ich nicht versteh. ich dachte HANDLE ist eine structur?

    Wie kommst du auf eine solch seltsame Annahme? HANDLE ist meistens nichts anderes als ein typedef auf void* .

    Krauzi schrieb:

    Also: Wie komme ich von handle zu hwnd?

    Wahrscheinlich musst du irgendwie zum GUI Thread kommen und dort kannst du dann über EnumThreadWindows die Fenster auflisten. Genaueres kann man dir im WinAPI Forum sagen.

    Krauzi schrieb:

    2. frage:
    Gibt es eine Möglichkeit gleich ne ganze string eingabe zu simulieren, ohne dafür jedes zeichen einzeln zu simulieren?

    Ka, frag in der WinAPI nach.

    Grüssli



  • Dravere schrieb:

    Das ist WinAPI und gehört ins WinAPI Forum! Das wurde dir glaub ich inzwischen schon 3 mal gesagt!

    aha. such mal bitte in diesem thread nach WinAPI!

    das taucht hier nämlich genau 7 mal auf (inklusive meiner 3). Und alle wurde (ausgenommen) meine von dir verwendet. Also das wurde mir noch nicht gesagt, und für mich als c++ neuling gibts hier noch keinen unterschied (da ich noch auf mein buch von amazon warte).



  • Krauzi schrieb:

    für mich als c++ neuling gibts hier noch keinen unterschied (da ich noch auf mein buch von amazon warte).

    ganz einfach
    #include <windows.h> => WinAPI

    wenn sich dort herausstellt, dass du nen logikfehler o.ä. drin hast, wirst du scho automatisch verschoben werden ^^

    bb


  • Administrator

    Krauzi schrieb:

    aha. such mal bitte in diesem thread nach WinAPI!

    Ich meine auch nicht in diesem Thread, sondern in deinen anderen 3 Threads:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-244737-and-highlight-is-.html
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-244972-and-highlight-is-.html
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-245002-and-highlight-is-.html

    Krauzi schrieb:

    ... und für mich als c++ neuling gibts hier noch keinen unterschied (da ich noch auf mein buch von amazon warte).

    Dir wurde schon mehrmals gesagt, dass es kein GUI in C++ gibt, dass es keine Prozesse in C++ gibt, dass es keine entsprechende Funktion für die Verwaltung in C++ gibt und eben schon mehrmals auf die WinAPI hingewiesen.
    Auch sollte man so ziemlich einfach erkennen können, was aus der C++ Standardbibliothek kommt und was von der WinAPI, da die Schreibweise komplett anders ist.

    Finde hier mal gross geschriebene Wörter ausser Makros, welche der Standardbibliothek angehören:
    http://www.cplusplus.com/reference/

    Ich traue dies wirklich auch einem Neuling zu, denn so viel Wissen braucht es dazu nicht, sondern nur ein wenig logisches Denken.

    Grüssli



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten