Zwei Fragen zum Tastenstatus "T"

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Rohwedder
Posts: 2702
Joined: 04 Jun 2014, 08:33
Location: Germany

Zwei Fragen zum Tastenstatus "T"

25 Mar 2020, 05:14

Hallo,

Code: Select all

#InstallKeybdHook ;ob diese Direktive vorhanden ist oder nicht, spielt keine Rolle!
;"T"-Status wird umgeschaltet:
q::ToolTip,% "q: " GetKeyState("q","T") "  " A_TickCount
; * verhindert das umschalten:
*w::ToolTip,% "w: " GetKeyState("w","T") "  " A_TickCount
; sobald CapsLock gesetzt ist wird "CapsLock Down" nicht mehr ausgelöst
~*CapsLock::ToolTip, CapsLock Down  %A_TickCount%
~*CapsLock Up::ToolTip, CapsLock Up  %A_TickCount%
1. Auch eine "normale" Taste hat einen umschaltbaren "T"-Status wie Hotkey q:: zeigt.
Warum blockiert der Wildcard beim Hotkey *w:: diese Funktion?

2. Einstellung meines W10-Rechners: CapsLock kann seinen "T"-Status nur setzen, Shift setzt ihn zuruck.
Warum wird der CapsLock Down- Hotkey nur beim Setzen ausgelöst? Ist er gesetzt, wird nur noch CapsLock Up getriggert.
haichen
Posts: 364
Joined: 09 Feb 2014, 08:24

Re: Zwei Fragen zum Tastenstatus "T"

25 Mar 2020, 06:01

Ich vermute mal das alles so seine Richtigkeit hat. Meine Vermutung ist:

Zu 1. Die Wildcard * verhindert, dass man einen Togglestatus zuordnen kann. Soll Toggle zu SHIFT+W, W, ALT+W oder was auch immer gelten? Alles gleichzeitig geht vermutlich nicht.
Dazu passt, das z.B. +w den Togglestatus nutzt. ~*w geht, weil auch das normale Verhalten nicht unterdrückt wird.

Zu 2. "Warum wird der CapsLock Down- Hotkey nur beim Setzen ausgelöst? Ist er gesetzt, wird nur noch CapsLock Up getriggert." - Up kommt nun mal automatisch nach down, wenn ich den Finger hebe.
Und Toggle kann auch nur für den gesamten Tastendruck gelten. Toggle für "Taste runtergedrückt" macht für mich keinen Sinn.

Ich kann nicht sagen ob meine Erklärung sinnvoll ist, aber ich glaube, das Verhalten, das du beobachtest hast, ist sinvoll.
haichen
Posts: 364
Joined: 09 Feb 2014, 08:24

Re: Zwei Fragen zum Tastenstatus "T"

25 Mar 2020, 06:06

Das man den Toggle-Status für jeden Tastendruck (sogar mit Modifikator!) abfragen kann, finde ich übrigens richtig gut. Kannte ich nicht.
just me
Posts: 6804
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Zwei Fragen zum Tastenstatus "T"

25 Mar 2020, 10:28

Moin,

ist schon interessant. Ich habe den Keyboardhook nicht benutzt, um die Ergebnisse nicht zu beeinflussen.

Wenn ich den Sourcecode verstehe, verwendet AHK für die Modi L und T die Funktion GetKeyState(), für P dagegen den Hook oder die Funktion GetAsyncKeyState().

Die Rückgaben der beiden Funktionen sind unterschiedlich. Bei GetAsyncKeyState() ist das Togglebit (Bit 0) immer gesetzt, bei GetKeyState() wird es dagegen bei jedem Tastendruck für alle Tasten umgeschaltet. Wozu das gut ist, weiß ich nicht. Die Erläuterungen von Microsoft helfen mir nicht weiter.

Code: Select all

#NoEnv
Gui, Add, Edit, w400 h400
Gui, Show, , Test
OnMessage(0x0100, "WM_KEYDOWN")
Return
GuiClose:
ExitApp
WM_KEYDOWN(W, L) {
   ToolTip, % Format("VK 0x{:X} = 0x{:04X} SYNC | 0x{:04X} ASYNC"
                    , W
                    , DllCall("GetKeyState", "Int", W, "UShort")
                    , DllCall("GetAsyncKeyState", "Int", W, "UShort"))
}
Zum CapsLock-Problem schreibst Du: "Einstellung meines W10-Rechners:...". Ist das eine Windows-Einstellung?
Rohwedder
Posts: 2702
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Zwei Fragen zum Tastenstatus "T"

25 Mar 2020, 10:43

Ja, und das müsste das Standardverhalten von CapsLock bei Windows 10 sein.
Da ich CapsLock normalerweise nicht verwende habe ich nichts daran "gedreht".
Bei meiner vorherigen Windows 7 Installation konnte CapsLock seinen Togglestatus noch selbst umschalten.
Ich kam auf das beschriebene Phänomen weil jemand mit einem CapsLock-Hotkey etwas toggeln wollte.
just me
Posts: 6804
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Zwei Fragen zum Tastenstatus "T"

25 Mar 2020, 10:46

Ich habe auch Win10 und bei mir schaltet CapsLock bei jedem Druck um. Das sieht man im Testskript und auch an der LED.
haichen
Posts: 364
Joined: 09 Feb 2014, 08:24

Re: Zwei Fragen zum Tastenstatus "T"

26 Mar 2020, 03:17

Der Capslock schaltet auch bei mir jedesmal um (win10).

Code: Select all

~CapsLock::ToolTip, % "CapsLock Down " A_TickCount " |" GetKeyState("CapsLock","T")
~CapsLock Up::ToolTip, % "CapsLock Up " A_TickCount " |" GetKeyState("CapsLock","T")
Mir ist aufgefallen, das der Toggle-Status auch ohne Skript weiter bei Tastendruck wechselt:
Skript starten
CapsLock solange drücken bis T=0
Skript beenden
CapsLock CapsLock
Skript anstellen
CapsLock T=1

Skript starten
CapsLock solange drücken bis T=0
Skript beenden
CapsLock CapsLock CapsLock
Skript anstellen
CapsLock T=0
Rohwedder
Posts: 2702
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Zwei Fragen zum Tastenstatus "T"

26 Mar 2020, 06:24

Bei mir kann sich CapsLock nun auch wieder selbst zurücksetzen und der CapsLock DownHotkey wird von Autohotkey wieder erkannt. Hatte anscheinend doch etwas daran gedreht.

Eine simple Einstellung per Registry habe ich nicht gefunden und mußte dies leider per Win+I machen:
Mit W10, 1909 gehts z.Z. mit:
• Open Windows 10 Settings (Win+I)
• Navigate to Devices > Typing (Geräte > Eingabe)
• Scroll to find Advanced keyboard settings link at the bottom (Erweiterte Tastatureinstellungen.) Click to open
• Look for Input language hotkeys (Tastenkombinationen für Eingabesprachen), and click to open it
• It will reveal the Text Services and input language (Textdienste und Eingabesprachen) window.
Switch to Advanced Key Settings (Erweiterte Tastatureinstellungen)
• Under “To Turn off Caps Lock,(Zur Deaktivierung der Feststelltaste)” you have two options
o Press the Caps Lock Key (Feststelltaste drücken)
o Press the SHIFT key (Umschalttaste drücken)
• Select the first option, click on the Apply button, and then the Ok button to change the setting.
halweg
Posts: 19
Joined: 17 Apr 2018, 10:34
Location: Dresden

Re: Zwei Fragen zum Tastenstatus "T"

26 Mar 2020, 06:37

Oh, toll, diese Einstellung hatte ich auch schon lange gesucht.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 40 guests