2012-04-11 4 views
1

Ist es möglich, Schlüssel an ein Programm ohne SendMessage und PostMessage API zu senden?Schlüssel ohne SendMessage und PostMessage senden

+0

Es gibt sicherlich Methoden, die Sie nicht mit diesen spezifischen API verwenden, aber am Ende werden die Schlüssel immer noch mit den Nachrichtenwarteschlangen gesendet werden. Warum nicht direkt verwenden? – Cray

+0

Da es so einfach ist, einfach eine WM_CHAR-Nachricht zu senden/zu posten, habe ich noch nie etwas anderes versucht. –

Antwort

16

Die offizielle Art, Eingaben zu fälschen, besteht nicht darin, Windows-Nachrichten direkt zu senden oder zu veröffentlichen. Stattdessen sollen Sie SendInput anrufen.

Wenn Sie SendInput verwenden, ist es ununterscheidbar, die tatsächlichen Tasten tatsächlich zu drücken. Wenn Sie SendInput aufrufen, um Tastatureingaben zu fälschen, sendet das System Nachrichten schließlich an die Nachrichtenwarteschlange des Vordergrundthreads, der das Fenster mit dem Tastaturfokus erstellte.

+0

"nicht unterscheidbar": viele Poker-Kunden, die einen fortgeschrittenen Bot-Schutz haben, stimmen dem eher nicht zu :). Aber im Allgemeinen wird ein normales Programm keinen Unterschied sagen. – Cray

+0

@Cray Wie bemerkt Poker Client einen Unterschied? – Alex

+0

Zuletzt habe ich das recherchiert (vor ein paar Jahren), es wurde viel über GetAsyncKeyState gesprochen und wie SendInput diese Funktion nicht austricksen kann. Aber das war offensichtlich eine der einfachsten Methoden der Überprüfung (es ist sogar eine dokumentierte ring3-Funktion, nichts hinterhältig), und der Hut geht viel tiefer. – Cray

Verwandte Themen