Windows 中 xset 命令的对应命令是什么

Windows 中 xset 命令的对应命令是什么

如果在 Ubuntu 系统上我想查看不同锁键的状态,我可以轻松运行xset q

但是,我在 Windows 系统上找不到类似的东西。我试过 Powershell,但它似乎只告诉你CapsLockvia[System.Console]::NumberLockNumberLockvia [System.Console]::NumberLock

我正在寻找的是功能键(fn)的锁定状态。

答案1

如果你在控制台中运行此命令:

$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

...然后按任意键,您将获得一个可以推断的返回值。

$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

# Presses the F1 Key
# Results
<#
VirtualKeyCode Character         ControlKeyState KeyDown
-------------- ---------         --------------- -------
           112          NumLockOn, ScrollLockOn    True
#>

我没有'fn 键' 在我的键盘上,但是,使用上面的其他特殊键,如“PrtScn 或 Pause 或 MS 人体工学键盘顶部的其他特殊键”,不返回任何内容。

更新-根据您所述的用例 您可以获取功能键的状态。我在一台有 fn(fnlk)的笔记本电脑上执行了此操作。

注意响应

# using just the F1 key fnlk not enabled
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

# Results
<#
VirtualKeyCode Character        ControlKeyState KeyDown
-------------- ---------        --------------- -------
        173          NumLockOn, EnhancedKey    True
#>


# using just the F1 key fnlk enabled - Note the difference
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

# Results
<#
VirtualKeyCode Character        ControlKeyState KeyDown
-------------- ---------        --------------- -------
        255          NumLockOn, EnhancedKey    True
#>


$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

# Results
<#
VirtualKeyCode Character ControlKeyState KeyDown
-------------- --------- --------------- -------
        112                NumLockOn    True
#>


# using fn+F1 - Not fn lock
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

# Results
<#
VirtualKeyCode Character ControlKeyState KeyDown
-------------- --------- --------------- -------
        112                NumLockOn    True
#>


# So, this shows, just look at the ControlKeyState and see if the EnhancedKey is set.
If (($Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")).ControlKeyState -match 'EnhancedKey'){'fn key not used or fn lock not enabled'}

相关内容