【原创】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:}
单击shift不能吗? 本帖最后由 jason5545 于 2019-6-6 19:18 编辑
試過了 很方便 感謝樓主 正好把日文鍵盤用不到的鍵來做利用 bug10改了之后确实很麻烦,我都忘记自己是怎么设置凑合的了 jason5545 发表于 2019-6-6 19:05
試過了 很方便 感謝樓主 正好把日文鍵盤用不到的鍵來做利用
我也有一把日文的8855,但是不在身边,请问,空格左右的按键,可以映射么?? ivex 发表于 2019-6-6 19:18
bug10改了之后确实很麻烦,我都忘记自己是怎么设置凑合的了
习惯成自然哈哈哈 本帖最后由 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 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
习惯了现在输入法shift的切换,不过还是要感谢楼主的分享!{:1_323:} jason5545 发表于 2019-6-6 20:24
試過 可以的
附上碼錶 方便直接使用
Message Key name (internal table by scanCode+flags.LLKH ...
感谢~~看不太懂哈哈哈,回头研究研究 其实已经习惯了win10 或是mac下的输入法操作,习惯形成了就懒得再去改变了
页:
[1]