zoukankan      html  css  js  c++  java
  • 不同窗口自动设置输入法

    实现不同窗口设置不同的输入法

    ;~shellhook=>wm_create=>getkeyboardlayout=>ImmSimulateHotKey 根据不同的程序窗口设置输入法,如键盘默认布局为英语(美国),运行脚本后,当开启Maxthon2,记事本,word,excel时,会设置输入法为QQ拼音。  
    ;~ 我很不爽把输入法默认设为英文每次都要在文字输入时开启中文,或者把输入法默认设为中文后在某些程序和游戏中又要关闭一次。在本论坛和官网窜访了几次后做了这个脚本,一劳永逸了。  
    #Persistent  
    Gui +LastFound  
    hWnd := WinExist()  
    DllCall( "RegisterShellHookWindow", UInt,hWnd )  
    MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )  
    OnMessage( MsgNum, "ShellMessage")  
    Return  
    ShellMessage( wParam,lParam ) {  
      If ( wParam = 1 )   
      {  
        WinGetclass, WinClass, ahk_id %lParam%  
        If Winclass in Notepad,OpusApp,XLMAIN,EVERYTHING,StandardFrame,UIWindowClassName.loach ,Container,TheWorld_Frame,IEFrame ;需要开启中文输入的窗口类名  
        {   
          winget,WinID,id,ahk_class %WinClass%  
          SetLayout("E0200804",WinID)         ;E02b所 804是谷歌拼音代码,系统内安装的输入法代码可以在注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layouts查到  
        }  
    ;~      If Winclass in Container,TheWorld_Frame,IEFrame       ;需要开启中文输入的窗口类名  
    ;~     {   
    ;~       winget,WinID,id,ahk_class %WinClass%  
    ;~       SetLayout("E0270804",WinID)         ;E0270804是拼音++代码,系统内安装的输入法代码可以在注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layouts查到  
    ;~     }  
       If Winclass in Progman        ;需要关闭中文输入的窗口类名  
        {   
          winget,WinID,id,ahk_class %WinClass%  
          SetLayout("00000804",WinID)         ;00000804是english代码,系统内安装的输入法代码可以在注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layouts查到  
        }  
        If Winclass in SciTEWindow  ;需要中文输入法英文状态的,窗口类名  
        {   
          winget,WinID,id,ahk_class %WinClass%  
          SetLayout("E0200804",WinID)  
          Send,{Shift}  
        }  
          
          
    }  
    }  
    SetLayout(Layout,WinID){  
    DllCall("SendMessage", "UInt", WinID, "UInt", "80", "UInt", "1", "UInt", (DllCall("LoadKeyboardLayout", "Str", Layout, "UInt", "257")))  
    }  
      
    ;~ HKL:=0x00000804  
    ;~ HKL:=e0240804  
    ;~ ControlGetFocus,ctl,A  
    ;~ #4:: SendMessage,0x50,0,HKL,%ctl%,A  
      
    #Z::  
    Edit  
  • 相关阅读:
    洛谷 P1508 Likecloud-吃、吃、吃
    Codevs 1158 尼克的任务
    2017.10.6 国庆清北 D6T2 同余方程组
    2017.10.6 国庆清北 D6T1 排序
    2017.10.3 国庆清北 D3T3 解迷游戏
    2017.10.3 国庆清北 D3T2 公交车
    2017.10.3 国庆清北 D3T1 括号序列
    2017.10.4 国庆清北 D4T1 财富
    2017.10.7 国庆清北 D7T2 第k大区间
    2017.10.7 国庆清北 D7T1 计数
  • 原文地址:https://www.cnblogs.com/zhanglei1371/p/6664889.html
Copyright © 2011-2022 走看看