schneehertz 发表于 2017-9-2 02:06

监控中英文状态,点亮键盘灯的小软件

本帖最后由 schneehertz 于 2017-9-2 02:08 编辑

闲,逛NGA,有位兄弟提了个蛋疼的问题 有没有一种键盘可以识别输入法的

于是写了个小程序,中文亮Scoll Lock灯,英文不亮灯,用的是Autohotkey

#Persistent
SetTimer, IMEState, 100
return

IMEState:
State := IME_GET()
If State = 0
  SetScrollLockState, Off
else
  SetScrollLockState, On  
Return

IME_GET(WinTitle="A") {
  ControlGet,hwnd,HWND,,,%WinTitle%
  if  (WinActive(WinTitle))  {
    ptrSize := !A_PtrSize ? 4 : A_PtrSize
   VarSetCapacity(stGTI, cbSize:=4+4+(PtrSize*6)+16, 0)
   NumPut(cbSize, stGTI, 0, "UInt") ;  DWORD cbSize;
    hwnd := DllCall("GetGUIThreadInfo", Uint,0, Uint,&stGTI)
   ? NumGet(stGTI,8+PtrSize,"UInt") : hwnd
  }

return DllCall("SendMessage"
, UInt, DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hwnd)
, UInt, 0x0283 ;Message : WM_IME_CONTROL
, Int, 0x0005 ;wParam : IMC_GETOPENSTATUS
, Int, 0) ;lParam : 0
}


虽说好像确实是没什么卵用,有爱自取吧



IME_GET函数来自https://www6.atwiki.jp/eamat/pages/17.html

9-11-2001 发表于 2017-9-2 07:51

schneehertz 发表于 2017-9-2 17:09

9-11-2001 发表于 2017-9-2 07:51
搭车问下有没锁定数字小键盘的软件啊。。。笔记本键盘太紧凑,一不小心就关闭数字键盘挺麻烦的 ...

#InstallKeybdHook
SetNumLockState, AlwaysOn

AutohotKey脚本,两行搞定

9-11-2001 发表于 2017-9-2 21:18

页: [1]
查看完整版本: 监控中英文状态,点亮键盘灯的小软件