Frage von eddiepoole, 37

Was hat Autohotkey gegen mich?

Ich wollte mit folgendem Hotkey STRG+S (Dokument sichern) simulieren

~LButton & s::Send, {ctrl down}s{ctrl up}

Es passiert aber absolut nichts, wenn ich den linken Button mit s drücke. Ich bin am verzweifeln.

Antwort
von PWolff, 22

LButton ist die linke Maustaste.

D. h. linke Maustaste gedrückt halten und s tippen sollte funktionieren.

Strg+S ist ^s.

Wenn du nur die linke Strg-Taste haben willst, nimm LControl & s oder <^s.

Quelle: https://autohotkey.com/docs/KeyList.htm

Kommentar von eddiepoole ,

Ja, das war meine Absicht. Linke Maustaste und S.

Aber dann wird nur ein s ausgegeben. Wenn ich "LButton & s" zum beispiel durch F1 ersetze und F1 drücke funktioniert der Hotkey aber wieder.

Ich verstehe diese Pannen nicht. Gestern habe ich stundenlang nach der Ursache für die Meldung "Returns parameter should be blank except inside a function" gesucht und am Ende lag es nur an dem Leerzeichen zwischen dem Funktionsnamen und der Klammer dahinter. Einfach frustrierend. Man baut x mal erfolglos das Skript um und stellt am Ende fest, dass der Interpreter die Leerzeichen mitzählt. Das habe ich noch in keiner anderen Programmiersprache erlebt.

Kommentar von PWolff ,

Sorry, hab die Frage missverstanden.

Scheint ein Windows-Problem zu sein: solange eine Maustaste (zumindest die linke) gedrückt ist, reagiert die Tastatur nicht.

Kommentar von eddiepoole ,

nein, ich habe bereits hotkeys, in denen das LButton vorkommt. Sie funktionieren. Z. B.

~LButton & F1:: Run, https://ragnar-f.github.io/docs/KeyList.htm

Kommentar von PWolff ,

Sorry, das kann ich bei mir nicht nachvollziehen.

(Liegt vielleicht daran, dass das eine uralte XP-Maschine ist und nicht mehr die neueste AHK-Version)

Kommentar von eddiepoole ,

Der Rechner ist keine vier Wochen alt und läuft mit Win7. Das Ahk hab ich mir erst vor einer Woche runtergeladen. Ich finde das gerade superfrustrierend, was dieses Programm für faxen macht.

Kommentar von PWolff ,

So geht's:

; das $-Zeichen verhindert, dass der Hotkey sich selbst auslöst
$s::
GetKeyState, lbtn, LButton
IfEqual, lbtn, D
{
KeyWait, LButton
Send, ^s
}
Else
{
Send, s
}
return
Kommentar von eddiepoole ,

Vielen Dank! Sieht sehr kompliziert aus. Funktioniert leider auch nicht. Ich frage mich langsam, ob das Anwendungspogramm die Signale abfängt...

Kommentar von PWolff ,

Geht bei mir auch mit der neuesten AHK-Version (1.1.23.01), in Notepad.

Es könnte vielleicht helfen, wenn du das Anwendungsprogramm und das AHK-Skript in der umgekehrten Reihenfolge startest.

Kommentar von eddiepoole ,

ich dachte es liegt vielleicht daran, dass ich notepad2 benutze. aber in word funktioniert das ganze auch nicht. das mit der umkehrung der startreihenfolge ist für mich keine lösung. ich gebe auf und benutz einfach strg+s, das ist sicherer.

danke für die mühe

Kommentar von PWolff ,

Ich hab's noch mal ausprobiert:

Möglichkeit A (reagiert erst, nachdem der Mausbutton logelassen wurde):

$s::
GetKeyState, lmb, LButton
if lmb = D
{
KeyWait, LButton
Send, ^s
}
else
Send, s
return

Möglichkeit B (reagiert sofort, erfordert aber Kenntnis des genauen Namens des Menüs):

$s::
GetKeyState, lmb, LButton
if lmb = D
{
;WinMenuSelectItem, A, , File, Save
;WinMenuSelectItem, A, , Datei, Speichern unter...
WinMenuSelectItem, A, , Datei, Speichern
}
else
Send, s
return
Antwort
von eddiepoole, 24

wenn ich ~LButton & s

durch F7 ersetze und F7 drücke, funktioniert der Send-Befehl.


Was ist falsch am Ausdruck ~LButton & s?

Keine passende Antwort gefunden?

Fragen Sie die Community