精易论坛

标题: 输入法自动切到美式键盘(玩游戏必备) [打印本页]

作者: 752686260    时间: 2021-11-17 22:15
标题: 输入法自动切到美式键盘(玩游戏必备)

你玩游戏是否经常误按输入法?你是否在网吧很烦每次都要改切输入法的按键?
我自己写了个程序,自动切回美式键盘。

需要精益模块哦。


  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
srf输入法类  
输入法句柄整数型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
i整数型 
temp文本型 
计次循环首 (srf.取输入法个数 (), i)
temp = srf.取名称 (i)
如果真 (temp = “Chinese (Simplified) - US Keyboard”)
输入法句柄 = srf.取句柄 (i)  ' 取到美式键盘
时钟1.时钟周期 = 1000  ' 启动时钟
标签1.标题 = “输入法禁止中”
跳出循环 ()

计次循环尾 ()
监视热键 (&输入法开放禁止, #F7键 )  ' 上面自动开启了,再按是关闭,这个监视热键需要超级模块
子程序名返回值类型公开备 注
_时钟1_周期事件  
如果 (进程_是否存在 (“123.exe”))  ' 先判断游戏是否存在,防止卡死
srf.激活 (进程_名取句柄 (“123.exe”), 输入法句柄)  ' 激活美式键盘



子程序名返回值类型公开备 注
输入法开放禁止  
如果 (标签1.标题 = “输入法禁止中”)
时钟1.时钟周期 = 0
标签1.标题 = “输入法开放中”

时钟1.时钟周期 = 1000
标签1.标题 = “输入法禁止中”


作者: 喵帕斯和艾希    时间: 2021-11-17 22:56
太好了,刚好需要,感谢楼主的分享
作者: 撒加    时间: 2021-11-17 23:13
这个非常非常的实用!
作者: 撒加    时间: 2021-11-17 23:24
测试了下win10没效果....
作者: 凌帅    时间: 2021-11-17 23:43
不用判断游戏模式吗?{:3_57:}
作者: 就是那个秋    时间: 2021-11-17 23:57
牛               
作者: qq2518    时间: 2021-11-18 01:51
win10可以用吗。瞧瞧看。感谢分享
作者: 君九    时间: 2021-11-18 08:44
win11用不了
作者: xjshuaishuai    时间: 2021-11-18 10:00
感谢楼主分享!
作者: wjswzj0    时间: 2021-11-18 10:19
感谢楼主分享!
作者: 752686260    时间: 2021-11-18 11:20
米拉珍 发表于 2021-11-18 08:44
win11用不了

可能是名称不同,用调试输出(temp)找到名称,改一改
或直接找到输入法句柄
作者: 深夜酒馆    时间: 2021-11-18 12:33
支持                     
作者: 君九    时间: 2021-11-18 14:39
752686260 发表于 2021-11-18 11:20
可能是名称不同,用调试输出(temp)找到名称,改一改
或直接找到输入法句柄 ...

都试过了也改过不行反映都没有
作者: 永痕    时间: 2021-11-18 17:48
win10 没有 CN的美式键盘 选项 只有US的吧
作者: 凌哥    时间: 2021-11-18 20:03
本帖最后由 凌哥 于 2021-11-18 20:04 编辑


作者: 凌哥    时间: 2021-11-18 20:04
这个挺好,我帮你优化了一下切换输入法的逻辑,兼容性更好。

  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
i整数型 
temp文本型 
计次循环首 (srf.取输入法个数 (), i)
temp = srf.取名称 (i)
如果真 (temp = “Chinese (Simplified) - US Keyboard”)
输入法句柄 = srf.取句柄 (i)  ' 取到美式键盘
时钟1.时钟周期 = 1000  ' 启动时钟
标签1.标题 = “输入法禁止中”
跳出循环 ()

计次循环尾 ()
监视热键 (&输入法开放禁止, #F7键 )  ' 上面自动开启了,再按是关闭,这个监视热键需要超级模块
子程序名返回值类型公开备 注
_时钟1_周期事件  
变量名类 型静态数组备 注
局_当前窗口句柄整数型 
局_文件名文本型 
局_当前窗口句柄 = 窗口_取顶端窗口句柄 ()
局_文件名 = 窗口_句柄取进程名 (局_当前窗口句柄)
如果真 (局_文件名 = “123.exe”)
srf.激活 (局_当前窗口句柄, 输入法句柄)  ' 激活美式键盘

子程序名返回值类型公开备 注
输入法开放禁止  
如果 (标签1.标题 = “输入法禁止中”)
时钟1.时钟周期 = 0
标签1.标题 = “输入法开放中”

时钟1.时钟周期 = 1000
标签1.标题 = “输入法禁止中”



作者: mood100    时间: 2021-11-18 22:42
感谢分享,玩游戏可以方便点了
作者: sinewtec    时间: 2021-11-19 09:27
此处应该有鼓励~
作者: 752686260    时间: 2021-11-19 17:30
srf.激活 (进程_名取句柄 (“12345.exe”), srf.取句柄 (1))  ' 序号1为默认的英文键盘,取到句柄,然后在指定的游戏进程里激活。这条代码放在时钟内循环,或放在 判断循环首 (1 = 1)
作者: 752686260    时间: 2021-11-19 17:31
米拉珍 发表于 2021-11-18 14:39
都试过了也改过不行反映都没有

这个行不行?
srf.激活 (进程_名取句柄 (“12345.exe”), srf.取句柄 (1))  ' 序号1为默认的英文键盘,取到句柄,然后在指定的游戏进程里激活。这条代码放在时钟内循环,或放在 判断循环首 (1 = 1)
作者: 752686260    时间: 2021-11-19 19:56
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
srf输入法类这是精易模块的

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
监视热键 (&禁止输入法, #回车键 )  ' 这是超级模块的
子程序名返回值类型公开备 注
禁止输入法  
变量名类 型静态数组备 注
进程句柄整数型 
如果真 (进程_是否存在 (“300.exe”))  ' 这是精易模块的
进程句柄 = 进程_名取句柄 (“300.exe”)  ' 这是精易模块的
srf.激活 (进程句柄, srf.取句柄 (1))  ' 这是精易模块的


作者: 小蚕    时间: 2022-10-10 20:01
win10可以用吗。瞧瞧看。感谢分享
作者: 不苦小和尚    时间: 2022-10-10 20:13
正好需要,看看原理
作者: 冰山一景    时间: 2022-11-29 01:06
谢谢大家的分享
作者: qinwyin    时间: 2023-5-15 11:51
太谢谢了

作者: 不二猫猫    时间: 2023-8-7 14:36
win11 x64完全没效果
作者: lcjiang    时间: 2024-3-20 20:44

此处应该有鼓励~
作者: 张而不狂    时间: 2024-4-21 21:03
不错不错,正是所需




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4