Eingaben abfangen und verändern



  • Hallo,
    ich möchte für ein bestimmtes Spiel Eingaben abfangen und verändert an selbiges weiterschicken.Also ich drücke "q" und mein programm soll aus dem "q" z.b eine folge "a" "b" "q" machen und die ans Spiel schicken um mit einer Eingabe "q" vom Spieler im Spiel gleich mehrere Sachen erledigt werden in dem fall "a" "b" "q".
    Jmd ne idee wie man sowas angehen könnte ? danke



  • Viele Spiele erlauben das Anwenden von Scripts, d.h. die Spiele unterstützen von Haus aus schon solche Sachen, z.B. die Q3 Engine. Du must nur entsprechend googlen.
    Ansonsten würde ich sagen, kann man dieses Verhalten von einem Keyboardhook erledigen lassen. Wenn dein Spiel Punkbuster oder eine ähnliche Anti-Cheatsoftware benutzt könntest du jedoch Probleme bekommen.



  • Nein Anti-Cheat gibts nicht.Zur sache mit dem keyboard hook muss ich den dann inner dll laufen lassen ?



  • Ja, hier ist ein Beispiel http://www.c-plusplus.net/forum/39383



  • Also ich habe bis heute nicht verstanden, warum ein Keyboard hook als dll implementiert werden muss. Ein programmweiter Hook kommt ohne dll aus. Oder liege ich da falsch? Also bei mir funktioniert es ohne dll, hmmm ...



  • Ein System-weiter Hook muss mit einer DLL gehandhabt werden. Ein Programm-weiter Hook funktioniert auch ohne DLL. Aber das kannst du alles aus MSDN entnehmen.

    http://msdn.microsoft.com/en-us/library/ms632589(v=VS.85).aspx


  • Mod

    int02h schrieb:

    Also ich habe bis heute nicht verstanden, warum ein Keyboard hook als dll implementiert werden muss. Ein programmweiter Hook kommt ohne dll aus. Oder liege ich da falsch? Also bei mir funktioniert es ohne dll, hmmm ...

    Du bist aber nicht der Erzeuge des Spieles und kannst den Code dort ja nicht manipulieren. Also bist Du auf eine DLL angewiesen. Oder Du injezierst Code direkt.
    Aber bei der Komplexität dessen, was Du vorhast würde ich zu einer DLL raten.



    1. injecte eine DLL
    2. setze ne neue WndProc in deiner DLL mit SetWindowLong
    3. q abfangen die anderen simulieren und Nachrichten weitergeben an die echte WndProc

Log in to reply