当前版本: 1.40
众所周知,ZUN 制作的 东方STG 从来就不自带更改键盘键位的功能。为此,各路大神都写过各种键盘映射工具,但大多是外挂式的。随着新版本的 Windows 对系统安全性的要求越来越高,这些外挂式的改键工具都可能存在兼容性问题。
THKMC(TouHou Keyboard Mapping Changer) 通过修改东方STG游戏主程序文件中与键盘映射相关的代码,实现自定义游戏键位。
东方STG获取键盘按键状态的方法有两种:使用 DirectInput
和 不使用 DirectInput
。 其中 使用 DirectInput
是通过调用 IDirectInputDevice8::GetDeviceState() 来获取键盘状态的;而 不使用 DirectInput
则是使用 Win32 API 中的 GetKeyboardState()。
本程序 只支持 对使用 DirectInput 方式获取的按键映射进行更改。所以要求在游戏自带的 custom.exe 程序中不能勾选 “不使用 DirectInput 获取键盘输入”。若勾选的话使用本程序改键将没有任何效果。(不过一般不会有人去勾选吧,因为游戏默认的不勾选也能工作得很好。)
相比较其他常见的外挂式通用键位修改工具,因为 THKMC 是为特定的EXE文件量身定制的,所以只要游戏版本正确且用户写的配置文件内容无问题,改键后通常不会有出错或者失效的现象发生。
本程序可修改的键位不仅包括在STG中用到的各种控制键(↑、↓、←、→、Z、X、C、SHIFT、CTRL、ESC等),还包括:
Home
或P
)R
( ESC+R
可以快速 RETRY)
D
(永夜抄 RESULT 画面会用到,可以将游戏纪录保存到文件中)Alt+Space
打开系统菜单, Alt+F4
关闭窗口什么的,这是 Windows 管的,本工具无法对这些系统组合键进行重映射。除此之外,还有这些优点:
当然缺点也很明显,就是不通用,除了下面 支持的游戏版本
中所列出的游戏的主程序文件外,不支持任何其他的文件。
小键盘8
的作用和 ↑
方向键 相同,属于一个功能有多个映射的例子,本程序可以分别将它们映射到不同的功能上。注意:若有哪一作未提到支持汉化版,只是未测试而已,多数情况下只要游戏版本号相同应该也能支持
对于其他打了非官方补丁的版本,本程序可能也能识别,但不保证能达到正确的修改效果。
常见问题
。记事本
)打开 thkmc.ini。你可以根据自己的喜好更改键位。
ESC
键映射为 `
键(即“反引号”键。通常位于主键盘数字 1
键的左边),则可以在 LSHIFT=i
下面插入一行 ESC=GRAVE
即可。
除了字母键外,thkmc.ini 文件中其他的按键都必须写键位名称,这需要使用者自行参考 KeyNamesDX.ahk,然后将其填入 INI 文件中。其中 THKMC_KeyNamesDX["XXX"]
中的 XXX
部分便是可以使用的键位名称。
比如该文件中有一行是:
THKMC_KeyNamesDX["GRAVE"] := 0x29 ; accent grave `
如图:
右边的注释 accent grave `
提示 GRAVE
是 `
键的名称。所以将 GRAVE
填入 INI 文件中即可。
完整的 INI 编写说明可参考 INI设置项说明 。
东方鬼形兽 0.01a 体验版
为例)
{未指定} F10
,就说明东方鬼形兽支持 F10
键(切换全屏/窗口) 被重映射,如果你想要改成比如 F12
,你可以在INI文件里写 F10=F12
,那么以后按 F12
就可以切换全屏了。D
键,曾经在永夜抄里有作用,而后来的作品基本都用不到了。但是你可以看到东方鬼形兽还会监视 D
键,但是其实是没有功能的。所以我们可以写 RIGHT=D
来赋予 D
键新的功能。备份到 *.thkmcbackup?
的设置,执行自动备份。测试模式
复选框处于选中状态,也会弹出该结果框,但并不会真正地修改游戏主程序,备份文件也不会被生成(且结果框底色通常会是原谅绿)。总是添加至列表
复选框处于选中状态,那么即使打补丁失败,其文件路径也会添加的列表中。
总是添加至列表
复选框”?嘛,还是那句话:图片仅供参考,请以实物为准
hhhhh 东方STG游戏启动器
来使用。本程序仅仅通过 EXE 的文件大小和 PE 文件头中的UNIX时间戳(dwTimestamp) 来判断是哪个游戏,所以应该可以兼容各种打过第三方补丁(包括汉化补丁)的版本。
根据打补丁成功与否,“结果”窗口的底色(非文本框颜色)会有所不同。
测试模式
勾选,然后重试。由于作者患有懒癌晚期,本程序在修改前不会校验被修改的数据,所以如果有哪个第三方补丁修改的地方恰好与本程序相同,或者在补丁数据位置之前插入了其他数据导致位置发生了偏差,那么应用改键补丁后的结果将没有人知道!
请参阅软件目录下的 thkmc_sample.ini
文件。
如何从打过补丁后的EXE中获取键位?
目前无法获取。
地灵殿键位修改无效。
请更新到最新版本的 THKMC。
各种杀软报毒?
本程序使用 AutoHotkey 语言编写,并使用 MPRESS 压缩。可能有些杀软对 MPRESS 壳敏感。若报毒请添加信任。
作者承诺决不暗藏任何恶意代码。不信自己看源代码吧。
本程序的新版本可以在以下地址获取到:
编译版&更新历史:
源代码:
我编写的其他小程序: