Windows + 带数字键盘的数字

Windows + 带数字键盘的数字

我正在寻找如何使用 Win + 数字快捷键来打开使用数字键盘而不是 qwerty 键的程序。使用 Windows 10 时,我非常习惯将我的高运行应用程序固定到任务栏并使用“win + #”快捷键打开它们,但出于某种原因,我无法将其与有线键盘(无论是否使用数字锁定)的数字键盘数字一起使用。不确定这是 Windows 的编程行为还是实际的键盘设置。我更喜欢使用小键盘而不是 qwerty 数字,只是因为手的位置。有什么想法可以启用或解决?

答案1

这应该适用于即插即用或内置键盘。将此代码复制并粘贴到行政人员PowerShell 窗口 (温基+X>Windows PowerShell(管理员))。该脚本的设计使得可以轻松添加或减去重映射对。但正如发布的那样,它重新映射了受 Numlock(0-9、./Del)影响的键以生成相应 QWERTY 键的扫描码。


编辑#2:重新编写代码 - 结果相同,只是代码更紧凑。

###   *** This code must be run from an elevated (Admin) PowerShell session *** ###

###   If both source and target are not extended scan codes, 
###   add them here and the extended bytes will be added by code.

[Byte[]]$SimplePairs = @(
    0x02, 0x4f   #   [1 !] => [1 end]
    0x03, 0x50   #   [2 @] => [2 ↓]
    0x04, 0x51   #   [3 #] => [3 pg-dn]
    0x05, 0x4b   #   [4 $] => [4 ←]
    0x06, 0x4c   #   [5 %] => [5]
    0x07, 0x4d   #   [6 ^] => [6 →]
    0x08, 0x47   #   [7 &] => [7 home]
    0x09, 0x48   #   [8 *] => [8 ↑]
    0x0a, 0x49   #   [9 (] => [9 pg-up]
    0x0b, 0x52   #   [0 )] => [0 Ins]
    0x34, 0x53   #   [. >] => [. Del]
#   0x00, 0x3a   #   [Null] => [CapsLock]
).ForEach({ $_ , 0 })      ### Add zero-valued extended byte to each scancode

###   If either one or both are extended scan codes,
###   add them here with the extended byte value as well.

[Byte[]]$ExtendedPairs = @(
#   0x5d, 0xe0, 0x1d, 0xe0 # [ContextMenu] > [R-Ctrl]
)

[Byte[]]$AllPairs = $SimplePairs + $ExtendedPairs

[byte[]]$Remap    = [byte[]]::new(8) +  
                    [BitConverter]::GetBytes( $AllPairs.Length/4 + 1 ) +
                    $AllPairs +
                    [byte[]]::new(4)

$Splat = @{
    'Path'  = 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layout'
    'Name'  = 'ScanCode Map'
    'Value' = $Remap
    'Force' = $True
}
[Void]New-ItemProperty @Splat

echo @'


   ***   Done. Computer must be restarted   ***
   ***   before changes will take effect.   ***

'@

粘贴后,按执行,然后重新启动计算机。


编辑:撤消:

使用从注册表项中RegEdit删除ScanCode Map条目(类型:) :REG_BINARY

  • HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout

或者从运行此命令行政 电源外壳安慰:

  • Remove-ItemProperty 'HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout' 'ScanCode Map'

额外提示:如果您需要暂时禁用重新映射或尝试不同的重新映射,请将注册表项重命名为除 之外的其他名称ScamCode Map,然后重新启动。除 之外的值ScamCode Map将被忽略:

在此处输入图片描述

相关内容