Tasteneingabe simulieren



  • Guten Abend;

    Ich hock nun seit etwas längerer zeit über einem kleinem Problem

    Und zwar würde ich gerne ein Programm schreiben welches z.B. in notepat etwas schreibt.

    Bis jetzt habe ich sowas immer mit autoit geregelt aber will das nun auch einmal in einer vernünftigen Programmiersprache machen

    Bei autoit gibt es einen Befehl ControlSend ("Unbenannt Editor","", "Edit1", "1")

    Also er schreibt i Editor eine 1

    Nun bin ich auf der Suche auf den Befehl keybd_event gestoßen.

    Ich konnte damit zwar (zum testen) die Druck taste betätigen für einen Screenshot aber Bin nun absolut ratlos wie ich damit z.B. die Zahl 1 an den Editor schicke

    In der MSDN Libary habe ich auch schon gesucht und ein paar funktionen gefunden die aber auch nicht das machen oder irgendwie einen Fehler verursachen

    Ich hoffe mal das so etwas möglich ist ;>

    MfG



  • Schau dir mal FindWindow und SendMessage an. Das kannst du ansetzen.



  • drakon schrieb:

    Schau dir mal FindWindow und SendMessage an. Das kannst du ansetzen.

    Nimm statt SendMessage PostMessage



  • unskilled schrieb:

    drakon schrieb:

    Schau dir mal FindWindow und SendMessage an. Das kannst du ansetzen.

    Nimm statt SendMessage PostMessage

    Kommt halt drauf an, was er genau will. Kann aber durchaus Sinn machen Post zu benutzen, aber darum habe ich gesagt, dass er da mal ansetzen kann. 😉

    Und bitte bei einer solchen Aussage auch noch dazuschreiben, warum du eine andere Funktion empfehlen würdest, weil das ihm sonst nicht viel bringt..



  • So ich nerv euch nochmal ;>

    iwie verschließt sich mir wie ich die Funktion benutzen soll

    bis jetzt kam ich nur auf diese Idee hier ^^

    BOOL PostMessage(FindWindow("notepad", NULL),1,NULL,NULL);

    Hier bekomme ich aber den fehler das ich zu vele Initialisierungen habe

    Aber danke schonmal für die bisherigen Antworten

    MfG



  • drakon schrieb:

    unskilled schrieb:

    drakon schrieb:

    Schau dir mal FindWindow und SendMessage an. Das kannst du ansetzen.

    Nimm statt SendMessage PostMessage

    Und bitte bei einer solchen Aussage auch noch dazuschreiben, warum du eine andere Funktion empfehlen würdest, weil das ihm sonst nicht viel bringt..

    Wollte ich auch - ich hatte ca. 3h zuvor das selbe problem und konnte aber nicht mehr finden, wieso sendmsg doof war ^^
    hier ist nen thread dazu, der das hoffentlich ein wenig erklärt - aber imho gabs da auch direkt nen msdn-artikel dazu - nur find ich ihn gerad nich ^^
    http://www.softgames.de/forum/frage116769.html

    notepad wird btw (imho) nicht gehen, aber:

    std::getline (std::cin, title);
    const HWND handle = FindWindow(0, title.c_str());
    if (!handle)
    	return EXIT_FAILURE;
    
    PostMessage(handle, WM_KEYDOWN, '0', 0);
    PostMessage(handle, WM_KEYUP, '0', 0);
    

    bb


Anmelden zum Antworten