很多 FPS 游戏(如 CS:GO)会在启动的时候添加一个美式英文键盘,但不会在结束游戏的时候卸载这个键盘。
在 Steam 社区找到一个批处理的解决方案,不过需要保存两个额外的 xml
文件在硬盘来调用。
研究了下相关的 API,用汇编做了个简单的小程序。
下载
源码使用 BSD 3-Clause 协议授权,可以在 JixunMoe/RemoveUSKeyboardLayout 获取。
启动游戏并移除美式键盘
- 此处使用的例子是“军团要塞2”。
- 其他游戏的 Steam APPID 可以从其对应的商店地址找到。
将批处理与编译后的文件放在同一目录:
REM 启动游戏
start steam://rungameid/440
REM 等待游戏启动并添加键盘
timeout /t 5
REM 移除键盘
%~dp0\RemoveUSKeyboardLayout.exe
Code language: DOS .bat (dos)
或,使用 VBScript
脚本启动来隐藏命令行窗口:
Set objShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(Wscript.ScriptFullName)
strFolder = objFSO.GetParentFolderName(objFile)
' 启动游戏
objShell.ShellExecute "steam://rungameid/440"
' 等待游戏启动并添加键盘
WScript.Sleep(5000)
' 移除美式键盘
objShell.ShellExecute strFolder & "\RemoveUSKeyboardLayout.exe"
Code language: VBScript (vbscript)
啊 多谢,这个很需要。据说是Source引擎的游戏都会这样。
这样啊。
我是之前打 apex/tf2 的时候发现会给我装的 😂😂
兄弟 有个软件可以帮忙看一下么 有偿。qq4********
不搞不搞,搞不来。