创建计算机认为是真实的“假密钥”吗?


20

说明

好了,这是键盘总体布局的照片。

我想知道的是:是否可以在键盘上模拟标准按键以外的其他按键?例如,我可以欺骗我的计算机,使我认为键盘上还有3个额外的键,分别标记为FK1,FK2和FK3。

这三个额外的键不是字母键,例如Home,Insert,Page Up等。
基本上,它们什么都不做,除非指定要执行某项操作。例如,如果我在程序中设置一个热键以使用FK1,它将对其进行注册。

为什么?

我很高兴你问。我经常玩一款名为ArmA 3的游戏,熟悉该游戏的人都知道它几乎用完了键盘上的每个键。
为了在这个游戏中与我的队友交流,我使用TeamSpeak。我有一个适合团队演讲的音板,我希望能够使用热键而不是按Alt键和单击来激活不同的声音,但是在ArmA中,我使用的所有Mod几乎都没有空闲键。

即使您可以创建这些“假键”,如果它们不在实际的键盘上,您将如何在游戏中使用它们?

很好的问题
我的键盘是Logitech G910 Orion Spark,上面有27个宏。我假设我可以设置这些宏中的每一个以在使用过程中调用假键盘按钮。

这可能使阅读非常混乱,但我已尽力而为。

Windows 10专业版(x64)


1
这是一个有趣的难题……
wogsland

也许我建议您购买带有自定义键的键盘,您可以获得它们。例; amazon.co.uk/Programmable-aLLreLi-Mechanical-Keyboard-Gameboard/...
罗伯特·庞德尔

1
您随附的图片不是标准的美国键盘。我简直不敢相信您掌握了这个错误的最基本的部分。标准键盘是IBM-PC兼容键盘-基本上是具有两个WINDOWS键的全尺寸台式机键盘。您在此处描述了Apple专有键盘。那不是标准键盘。您应该解决此问题;因为您询问了标准键盘,然后包括了非标准键盘的图示,所以您现在的问题绝对没有道理。如果您确实在询问标准键盘,则最好删除这些图像
InterLinked

Answers:


15

当您按下键盘上的某个键时,硬件会生成一个“扫描代码”,然后该软件会将其解释为特定的按键。

密钥重新分配

KeyTweak允许您通过添加适当的注册表项来重新分配Windows从每个扫描代码中解释的按键。

不幸的是,它不允许您添加其他假密钥。它得到的最接近的结果是允许重新分配某些键盘具有的媒体/ Web控制键。它还不允许您分配键盘通常不使用的键代码。因此,如果您有美式键盘,则不会分配Ó或£。因此,您仍然只能使用普通的字母,您已经用尽了。

作假

AutoHotkey允许脚本生成扫描代码和不寻常的符号。

每当按下Win + p时,此脚本都会生成£(我将符号从互联网上删除,并将其粘贴到我用来创建脚本的文本编辑器中):

#p::
send, £

根据您的游戏,您可能可以使用类似这样的脚本来获取£作为游戏中的键。但是,如果游戏正在等待要生成的实际键盘扫描代码,则将无法正常工作。这取决于游戏与硬件的交互方式。

幸运的是,AutoHotkey还可以生成键盘扫描代码。当按下Win + p时,此脚本将生成一个空格,因为扫描代码39(十六进制)为空格(请参见扫描代码列表)。

#p::
send, {sc39}

AutoHotkey还具有另一种生成虚拟密钥的方法。我尚未研究差异,但是在按下win + p时,此脚本将使用虚拟键生成空间:

#p::
send, {vk20}

本参考资料列出了所有虚拟密钥代码,包括许多您尚未使用的非标准密钥:https : //autohotkey.com/board/topic/98757-how-to-create-a-new-virtual-键/

您可以尝试创建一个将非标准虚拟密钥发送到您的游戏的脚本。如果游戏将其注册并允许您将其保存在键盘设置页面中,则您可能会使其正常工作。

最后一个难题是让Logitech宏调用生成虚拟密钥的AutoHotkey脚本。您将创建一个没有热键的AutoHotkey脚本,因此在运行时会立即触发-例如

send, {vk7B}

要么

send, £

将* .ahk文件与Autohotkey程序相关联,然后获取Logitech宏以打开保存的脚本。

注意:我尚未在任何游戏中对此进行测试。在不同的游戏中可能会有不同的结果-取决于它们接受的有效条目。在上面的“虚拟键”链接中,人们正在讨论几乎完全要执行的操作,并且似乎在使用F13-F24键方面已经取得了一些成功,因此也许可以先尝试一下。

vk7B    sc58    F12
vk7C    sc64    F13
vk7D    sc65    F14
vk7E    sc66    F15
vk7F    sc67    F16
vk80    sc68    F17
vk81    sc69    F18
vk82    sc6A    F19
vk83    sc6B    F20
vk84    sc6C    F21
vk85    sc6D    F22
vk86    sc6E    F23
vk87    sc76    F24

编辑: 根据评论中的要求;创建F13的简单脚本如下所示:

b::
send, {vk7C}

每次在此脚本处于活动状态时(在时钟附近的托盘中)单击“ b”,都将发送F13。该脚本将保持活动状态,并在您每次按“ b”键时运行,直到将其杀死。一旦游戏在键设置中注册了F13,请终止此脚本,并制作一个类似的代码供Logitech调用:

send, {vk7C}

这个不会保持活动状态,它将在每次调用时运行一次,然后结束。


这看起来确实正是我所需要的。但是,我完全迷失了程序。我创建了一个.AHK文件。第一行说#p ::,第二行说发送,£应该可以,对吗?还是我完全错过了一些东西。如果可能,您可以提供示例脚本吗?像脚本这样的东西告诉我,每次按WIN-F1来注册为F13时,它便足以告诉我。感谢一吨:)
乔什·西尔维斯

AutoHotKey帮助(程序文件夹中的AutoHotkey.chm)非常好。发送功能上的条目和热键条目都是不错的选择。我还将更新答案以包括win-F1-> F13。
阿德莱德爵士

如果KeyTweak不允许新钥匙但允许您移动它们,是否可以通过采用UK布局并四处移动钥匙以匹配美国布局来获得1个额外的虚拟钥匙?
user1937198

但是,有些键在大多数键盘上没有出现,例如F24,由Tom Scott用作表情符号键盘,由Linus Tech TipsTaran用作其视频编辑器宏。
TRiG

1

很抱歉为您提供最新回应。我需要访问F12之后的功能键,这是当前键盘制造商似乎无法解决的问题,但是使用AutoHotkey足够容易。我用它来将这些击键作为宏添加到我的鼠标,否则不支持添加任意键。

z::
send, {F13}
return

x::
send, {F14}
return

c::
send, {F15}
return

v::
send, {F16}
return

b::
send, {F17}
return

n::
send, {F18}
return

m::
send, {F19}
return

l::
send, {F20}
return

k::
send, {F21}
return

j::
send, {F22}
return

h::
send, {F23}
return

g::
send, {F24}
return
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.