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.htmlnotepad 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