7 Tasten Remappen ohne Neustart?

Saulus

Grand Admiral Special
Mitglied seit
11.07.2005
Beiträge
8.747
Renomée
95
Ich möchte ohne Neustart die Taste "R" auf die Taste Backspace legen.

Mit "remapkey.exe" aus dem "Windows Resource Kits" geht das super einfach, aber da funktioniert es nur über die Registrierung und somit einen Neustart.
Kennt wer eine andere kostenfreie Lösung?
 
Zuletzt bearbeitet:
Ok und noch einfacher? Ist doch ein wenig viel zum einlesen für nur eine Taste. Ich bin mir nicht mal sicher ob autoit das kann was ich brauche. Denn ich möchte nicht das nach dem Drücken vom Backspace durch ein script R gedrückt wird. Ich möchte das Backspace überhaupt nicht da ist.

Ich brauche das ganze für Battlefield 4. Ich will mit Backspace nachladen, so wie ich es immer habe. Geht bei BF4 nur nicht mehr weil die einen völlig nutzlosen Ingamebrowser fest auf diese Taste gelegt haben. Drücke ich also Nachladen geht mitten im Spiel ein Browser auf und ich stehe unbeweglich mitten im Gefecht.
 
Mit folgendem AutoIt-Skript geht das ganz einfach:
Code:
#include <Misc.au3>

;#NoTrayIcon
_Singleton(@ScriptName)

HotKeySet("{BACKSPACE}", "IGNORE_BS")

while 1
    Sleep(10000)
WEnd

Func IGNORE_BS()
EndFunc
Das kann man noch kompilieren in eine EXE und man kann es natürlich noch ein bisschen schöner machen (Icon im Tray ausblenden (#NoTrayIcon freischalten), beendbar machen usw), aber im Prinzip macht das Teil genau, was du willst. Ich hoffe, dir ist klar, dass das ein systemweiter Hotkey ist, d.h. Backspace geht in keiner Anwendung mehr, solange das Skript aktiv ist. Andererseits ist das bei Änderungen via Registry genauso.

MfG Dalai
 
Zuletzt bearbeitet:
Du könntest Dir auch R auf eine Maustaste legen und damit nachladen, wenn Dir das R zu weit weg ist (bist Pfeiltastenläufer, was?^^)
 
Ja Pfeiltastenläufer^^ Ich stamme halt noch aus Zeiten wo man Shooter ohne Maus gespielt hat. Maustasten habe ich nur zwei + Rad weil linke Hand, und da gibt es nicht viele gute Mäuse.

@Dalai ok das skript macht aber nur das Backspace ignoriert wird? Kannst mir das nicht mal fix als exe fertig machen? Ohne verstecken im Tray damit ich es schnell wieder aus bekomme? Ja ich bin faul^^ aber du scheinst damit Erfahrung zu haben, ich überhaupt nicht.
 
Ja Pfeiltastenläufer^^
Dito ;). Wobei ich schon immer meine Waffen mit der rechten Maustaste nachgeladen habe ;D.

@Dalai ok das skript macht aber nur das Backspace ignoriert wird?
Korrekt, Backspace wird komplett geschluckt, ist also auch sonst nicht verwendbar, wie du es im OP bzw. in Beitrag #3 eigentlich haben wolltest (mit Backspace nachladen).

Kannst mir das nicht mal fix als exe fertig machen? Ohne verstecken im Tray damit ich es schnell wieder aus bekomme?
Klar, kein Problem. Selber kompilieren ist aber immer besser, weil man dann genau weiß, dass die EXEn virenfrei sind und auch sonst nichts anderes (Unerwünschtes) tun. Früher konnte man die EXEn der AutoIt-Skripte dekompilieren, aber irgendwann wurde das ausgebaut... Anyway, hier das Archiv mit EXE und AU3-Quellcode, kompiliert mit AutoIt 3.3.6.1.

MfG Dalai
 
man kann doch immer noch die scripte compilieren. mache ich jeden tag mehrfach.
 
[OT]

man kann doch immer noch die scripte compilieren. mache ich jeden tag mehrfach.
Es ging ums Dekompilieren und das geht nicht mehr. 3.3.4.0 war die letzte Version, die noch ein Exe2Aut enthielt, mit dem man solche EXEn dekompilieren konnte. Man kann auch nicht einfach die Exe2Aut vom 3.3.4.0er nehmen, um mit neueren Versionen kompilierte EXEn zu dekompilieren, es gibt dann nur eine Fehlermeldung, es wäre kein AutoIt-Skript.

Aber ich lass mich gern überraschen, wenn du mir sagst, dass du die Ignore_BS.exe dekompilieren kannst - aber dann bitte mit Anleitung, wie und womit du das machst.

[EDIT]
OK, mit diesem Exe2Aut (was nichts mit dem Exe2Aut von AutoIt gemein hat) geht das tatsächlich noch, aber es liegt AutoIt eben kein Tool mehr bei. Und das meinte ich eigentlich.
[/EDIT]

[/OT]

MfG Dalai
 
Zuletzt bearbeitet:
Danke, soweit funktioniert das schon, BF4 bekommt von Backspace nichts mehr mit. Nur leider fehlt noch der Teil mit dem "R". Jetzt ist nur die Taste tot aber ich will damit ja Nachladen.
 
Dachte ich mir's doch, dass das nicht ausreicht ;D. Ich sehe da nur die Möglichkeit, bei Druck von Backspace irgendeine andere Taste zu senden, auf die du dann das Nachladen legst. Konkret:
Code:
#include <Misc.au3>

;#NoTrayIcon
_Singleton(@ScriptName)

HotKeySet("{BACKSPACE}", "IGNORE_BS")

while 1
    Sleep(10000)
WEnd

Func IGNORE_BS()
    Send("{r}")
EndFunc
Du musst also R mit dem Nachladen belegen und letztlich führen beide Tasten (R und Backspace) diese Funktion aus. Ich hab aber keine Ahnung, ob das in Spielen funktioniert, weil die AFAIK andere Funktionen verwenden, um die gedrückten Tasten zu ermitteln. Und nu ran ans Selberkompilieren ;D (AutoIt als SFX runterladen, entpacken, Aut2Exe starten und los geht's).

MfG Dalai
 
[OT]

Es ging ums Dekompilieren und das geht nicht mehr. 3.3.4.0 war die letzte Version, die noch ein Exe2Aut enthielt, mit dem man solche EXEn dekompilieren konnte. Man kann auch nicht einfach die Exe2Aut vom 3.3.4.0er nehmen, um mit neueren Versionen kompilierte EXEn zu dekompilieren, es gibt dann nur eine Fehlermeldung, es wäre kein AutoIt-Skript.

du hast natürlich recht. ich habe überlesen das du Decompilieren schreibst.


dein sleep(10000) hat jedoch keinen positiven effekt. ein sleep(10) oder sleep(100) macht die reaktion auf eingaben wesentlich schneller, braucht aber nicht mehr rechenzeit. im grunde genommen würde sogar ein sleep(1) ok gehen.
 
Zuletzt bearbeitet:
dein sleep(10000) hat jedoch keinen positiven effekt. ein sleep(10) oder sleep(100) macht die reaktion auf eingaben wesentlich schneller, braucht aber nicht mehr rechenzeit. im grunde genommen würde sogar ein sleep(1) ok gehen.
Das spielt überhaupt keine Rolle, weil jegliche Aktion sofort unterbrochen wird, wenn der Hotkey eintrifft. Probier's selbst aus, indem du einen sehr großen Wert für Sleep einsetzt (z.B. 200.000) und den Hotkey betätigst: der wird sofort verarbeitet, nicht erst, wenn die gerade verarbeitete Codezeile fertig ist. Ausnahmen davon gibt die Hilfe für sogenannte blockierende Funktionen (MsgBox, FileSelectFolder), aber Sleep gehört nicht dazu. Insofern hat das schon einen positiven Effekt, nämlich so wenig wie möglich CPU-Zeit zu verbraten - was schläft, kann nix verbrauchen. Schneller reagiert das Skript mit kleineren Schlafzyklen auch nicht.

MfG Dalai
 
Zurück
Oben Unten