ssc505684708 发表于 2019-6-6 18:37

【原创】TP一键切换输入法

本帖最后由 ssc505684708 于 2019-6-6 18:56 编辑

经常要中英混输的用户,可能需要频繁切换输入法。win10下(win8.1同)快速切换输入法的热键是alt+shift,比win+space的优点是不用被这个窗口拖慢工作速度,以及分心。



不过alt+space这个快捷键,有时候会受到alt的干扰,明明感觉已经抬起来alt键了,可能键盘还没回弹好,就会被接下来的输入干扰,因为程序菜单下alt+字母一般会启动各种按钮或者菜单。
其实反着按space+alt就能解决问题,然而有时候按惯了其他alt开头的组合键,先按space觉得怪怪的。
所以有没有办法一键切换输入法呢??
如果诸位有一块欧文布局的键盘,就很容易解决这个问题!
通过利用“z”和“左shift”之间的按键(黄色圈出来的),挂一个autohot的脚本,就很容易实现了。
正常布局的朋友可以把右侧的menu键映射掉,那个键也是不太常用的。
6行键盘的朋友,似乎只能寄托于6行欧文大回车布局了。。。



那么这个操作是一个很简单的操作,为什么还要写篇教程呢?
原因是按键的scan code查找,这一步有坑!


刚开始用chrome商店的程序,检测scan code是226,如下:

但经过测试,该编号是无法在Autohotkey下正常使用的。
开始怀疑是Autohotkey不支持scan code
研究发现可以通过sc###格式使用
并且有其他地方描述226确实是该按键比如这里:http://blogs.longwin.com.tw/lifetype/key_codes.html
陷入尴尬无限循环。。。。



换了几个按键,测试,发现Autohotkey支持scan code,并且跟该应用检测键位不一致


{此处省略长达20分钟,令人怀疑人生的,智障测试。。。}

转念一想,莫不是scan code对不上?

于是换了个软件(后面有附件,需要的自摸)

读取,看着结果一脸懵逼,,,
于是发动瞎JB试大*法
推测可以采用识别出的后2位(其实用VK也行,奈何这个按键在sk8855上识别为oem)
果然后2位是正确的
这个键就是56号


于是Autohotkey加一行:


sc56::send {LAlt down}{Shift}{LAlt up}



好用了~


===========================================
补充:
本文只是想提供按键正确的scan code
一种简单易行的按键映射为命令的方法
以及一个小工具给大家(我知道你们不会下载的,就当备份好了。。尬)



有了scan code,可以随意映射任何功能,比如嫌弃欧文键盘左shift短的朋友,挂一个:sc56::send {Shift}


之前我写过帖子是用注册表映射的这个按键,有需要的爬那个帖子吧。
https://www.ibmnb.com/forum.php?mod=viewthread&tid=1837022&extra=
其实还是Autohotkey方便,不用了随时关闭脚本就好了。

最后,楼主不是码农,也不是搞软件的,也不是学计算机的,也不是硬件专业的,技术属于幼稚园级别的,大佬们就当饭后娱乐{:1_236:}






stoner021 发表于 2019-6-6 18:47

单击shift不能吗?

jason5545 发表于 2019-6-6 19:05

本帖最后由 jason5545 于 2019-6-6 19:18 编辑

試過了 很方便 感謝樓主 正好把日文鍵盤用不到的鍵來做利用

ivex 发表于 2019-6-6 19:18

bug10改了之后确实很麻烦,我都忘记自己是怎么设置凑合的了

ssc505684708 发表于 2019-6-6 19:20

jason5545 发表于 2019-6-6 19:05
試過了 很方便 感謝樓主 正好把日文鍵盤用不到的鍵來做利用

我也有一把日文的8855,但是不在身边,请问,空格左右的按键,可以映射么??

ssc505684708 发表于 2019-6-6 19:20

ivex 发表于 2019-6-6 19:18
bug10改了之后确实很麻烦,我都忘记自己是怎么设置凑合的了

习惯成自然哈哈哈

jackyd98 发表于 2019-6-6 19:30

本帖最后由 jackyd98 于 2019-6-6 19:42 编辑

这个,我写的那个屏显脚本的双键快捷键以两个键作为开始触发,一个是V键,另一个是Z键。z+(0-9,home,end,pgup,pgdn.)
v+(0-9,.)

2014年前迷过一段时间AHK,自编脚本还是蛮有用的。主要是简化键鼠一步到位,与自动化作业,还有一个功能就是插件开发。比如截图(dllcall)呀。

jason5545 发表于 2019-6-6 20:24

本帖最后由 jason5545 于 2019-6-6 21:32 编辑

ssc505684708 发表于 2019-6-6 19:20
我也有一把日文的8855,但是不在身边,请问,空格左右的按键,可以映射么??
試過 可以的
附上碼表 方便直接使用
Message      Key name (internal table by scanCode+flags.LLKHF_EXTENDED)      vkCode      scanCode      flags      ExtraInfo      time      GetKeyNameText(scanCode+LLKHF_EXTENDED)
============
WM_KEYDOWN      無變換      0xEB VK_OEM_PA1      0x0000007B      0x00000000      0x00000000      0:00:06:24.750      
WM_KEYDOWN      變換      0x000000FF      0x00000079      0x00000000      0x00000000      0:00:06:25.812      
WM_KEYDOWN      カタカナ      0x000000FF      0x00000070      0x00000000      0x00000000      0:00:06:26.671      
WM_KEYDOWN      ¥      0x000000FF      0x0000007D      0x00000000      0x00000000      0:00:06:31.515      F14
WM_KEYDOWN      ——      0x000000C1      0x00000073      0x00000000      0x00000000      0:00:06:33.906      



wqnfs 发表于 2019-6-6 21:07

习惯了现在输入法shift的切换,不过还是要感谢楼主的分享!{:1_323:}

ssc505684708 发表于 2019-6-6 21:13

jason5545 发表于 2019-6-6 20:24
試過 可以的
附上碼錶 方便直接使用
Message      Key name (internal table by scanCode+flags.LLKH ...

感谢~~看不太懂哈哈哈,回头研究研究

yangjingmike 发表于 2019-6-6 21:47

其实已经习惯了win10 或是mac下的输入法操作,习惯形成了就懒得再去改变了
页: [1]
查看完整版本: 【原创】TP一键切换输入法