Tastensimulation - Art "Makro"

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Tastensimulation - Art "Makro"

    Hallo,

    ist es möglich, dass wenn man eine bestimmte Taste im Gamer Maker Spiel drückt ( Welches im Hntergrund minimiert läuft ) andere Tasten simuliert werden in Windows / anderen Programmen / anderen Spielen?
    Ich habe schon einen Thread dazu gefunden:

    Tasten simulieren (DLL)

    Ich habe es folgendermaßen gemacht:

    Im Step Event

    GML-Quellcode

    1. if keyboard_check_pressed(vk_numpad7)
    2. {
    3. keyboard_key_press(ord('A'));
    4. keyboard_key_press(vk_f2);
    5. }


    Die Tastenbeledung sollte nur ein Test sein, ich habe es im Texteditor versucht auszuführen, aber wenn ich die "7" dort klicke, wird kein "A" geschrieben, sondern nur die 7.
    Das heißt ja für mich dann, dass das Spiel das garnicht ausführt richtig, benötigt man dazu eventuell eine DLL?
    In den Optionen ist es auch so, dass das Spiel nicht den Fokus verliert, wenn es im Hintergrund läuft!

    Ich hoffe ihr könnt mir da irgendwie helfen,

    mfG
    icqgamer

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von icqgamer ()

  • Die keyboard_key Funktionen steuern nur die Events im GM,
    nicht die in anderen Programmen.

    Nein, diese Funktionen simulieren die Tastendrücke wirklich, nicht nur GM intern. Das Problem liegt an den keyboard_check Funktionen, welche die Tastendrücke nur dann registrieren, wenn das Fenster im Fokus liegt, was natürlich nicht der Fall ist, wenn du es mit einem Texteditor testest. Du musst stattdessen keyboad_check_direct verwenden. (Habe es gerade damit getestet und zumindest im Texteditor hat es funktioniert)
  • Wenn man beispielsweise 'A' auf 'B' mappen will, sollte man so vorgehen:

    :event_create: Create Event

    GML-Quellcode

    1. pressed = false;

    :event_step: Step Event

    GML-Quellcode

    1. if (keyboard_check_direct(ord('A'))) {
    2. if (!pressed) {
    3. keyboard_key_press(ord('B'));
    4. pressed = true;
    5. }
    6. } else if (pressed) {
    7. keyboard_key_release(ord('B'));
    8. pressed = false;
    9. }

    Funktioniert das bei dir? Wichtig ist eben, dass man auch simuliert, die Taste wieder loszulassen.
  • Hallo,

    ja, dieser Teil funktioniert bei mir, allerdings nicht in anderen Spielen, wo es teilweise sehr anstrengend ist jede Tasten einzelnd zu drücken ( Wo deshalb Makros helfen sollen ).
    Im Internet habe ich schon zich Makros getestet, aber keines davon funktioniert im Spiel, deshalb wollte ich ich mal ranmachen udn mein Glück mit dem Game Maker versuchen.
    Im Texteditor führt das Programm alles sauber aus, allerdings im Spiel leider nicht.
    Muss das Spiel eventuell via Injektor irendwie starten, damit das beides richtig funktioniert?