打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[AHK]双击shift将输入法切换成中文状态

平常用搜狗输入法,单击shift会在中英文之间切换。ctrl+, 是呼叫出搜狗拼音。

需求:
       实现 双击 shift 切换成中文状态(为了达到盲操打字的效果,避免去看输入法状态,如果没启动输入法会自动发送ctrl+,启动搜狗输入法)

代码实现的逻辑就是:
双击shift --》发送ctrl+,并将中文输入法切换到中文
双击ctrl   --》发送ctrl+,并将中文输入法切换到英文

  1. ;【功能】便于盲操,切换输入法状态
  2. ;【使用方法】
  3. ;想切成中文:双击shift
  4. ;想切成英文:双击shift后、再单击shift
  5. ;想切成英文:双击Ctrl
  6. ;作者:sunwind
  7. ;日期:2018年8月26日
  8. ;语言: AutoHotkey Unicode 32-bit
  9. ;测试环境:win10 + 搜狗输入法
  10. ;更新反馈地址:https://blog.csdn.net/liuyukuan/article/details/81939497
  11. #SingleInstance, force
  12. ~LShift::
  13. if pressesCount>0
  14. {
  15. pressesCount+=1
  16. return
  17. }
  18. pressesCount=1
  19. SetTimer,WaitKeys,300
  20. return
  21. WaitKeys:
  22. SetTimer,WaitKeys,off
  23. if pressesCount=2
  24. {
  25. Send ^`,
  26. IME_SET(1)
  27. }
  28. pressesCount=0
  29. return
  30. ~LCtrl::
  31. Keywait, LCtrl, , t0.5
  32. if errorlevel = 1
  33. return
  34. else
  35. Keywait, LCtrl, d, t0.3
  36. if errorlevel = 0
  37. {
  38. Send ^`,
  39. IME_SET(0)
  40. }
  41. return
  42. IME_SET(setSts, WinTitle="")
  43. ;-----------------------------------------------------------
  44. ; IMEの状態をセット
  45. ; 対象: AHK v1.0.34以降
  46. ; SetSts : 1:ON 0:OFF
  47. ; WinTitle: 対象Window (省略時:アクティブウィンドウ)
  48. ; 戻り値 1:ON 0:OFF
  49. ;-----------------------------------------------------------
  50. {
  51. ifEqual WinTitle,, SetEnv,WinTitle,A
  52. WinGet,hWnd,ID,%WinTitle%
  53. DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
  54. ;Message : WM_IME_CONTROL wParam:IMC_SETOPENSTATUS
  55. DetectSave := A_DetectHiddenWindows
  56. DetectHiddenWindows,ON
  57. SendMessage 0x283, 0x006,setSts,,ahk_id %DefaultIMEWnd%
  58. DetectHiddenWindows,%DetectSave%
  59. Return ErrorLevel
  60. }

ps

判断输入法是否是中文状态的函数

  1. IME_GET(WinTitle="")
  2. ;-----------------------------------------------------------
  3. ; IMEの状態の取得
  4. ; 対象: AHK v1.0.34以降
  5. ; WinTitle : 対象Window (省略時:アクティブウィンドウ)
  6. ; 戻り値 1:ON 0:OFF
  7. ;-----------------------------------------------------------
  8. {
  9. ifEqual WinTitle,, SetEnv,WinTitle,A
  10. WinGet,hWnd,ID,%WinTitle%
  11. DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
  12. ;Message : WM_IME_CONTROL wParam:IMC_GETOPENSTATUS
  13. DetectSave := A_DetectHiddenWindows
  14. DetectHiddenWindows,ON
  15. SendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%
  16. DetectHiddenWindows,%DetectSave%
  17. Return ErrorLevel
  18. }

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
WinTitle 参数与最近找到的窗口
ahk学习笔记之进程之间的通信
修改 Windows 10 的输入法设置,让它变得和 7 一样 | Slot 4
QQ聊天时一些有用的快捷键
输入法快捷键的设置
CTRL+SHIFT不能切换输入法解决方案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服