zoukankan      html  css  js  c++  java
  • [AHK]输入法状态提示,中文状态提示“中”,英文状态提示“EN”[转]

    测试中发现使用小鹤双拼,如果不是使用shift切换中英文,效果不理想,留下此文章做个标记
    https://www.autoahk.com/archives/8755

    输入法状态提示,中文状态提示“中”,英文状态提示“EN”,
    切换中英文状态的时候,或者用鼠标切换到另一个编辑窗口的时候再次提示,循环如此。

    ;功能:输入法状态提示
    ;环境:win10+搜狗输入法,输入法状态切换用默认的shift键。
    ;作者:sunwind
    ;时间:2018年9月1日
    ;更新链接:https://blog.csdn.net/liuyukuan/article/details/82291632
     
    ~Shift::
    ToolTip
    If (IME_GET()=1)
    	ToolTip,EN  ;shift得反着提示,提示切换后的状态。
    else
    	ToolTip,中
    return
     
    ~LButton::
    If  (A_Cursor = "IBeam" ) {
    	Edit_Mode := 1
    } else if(A_Cursor = "Arrow" ) {
       Edit_Mode := 0
    } 
     
    MouseGetPos, , , WhichWindow, WhichControl
    WinGetPos,winx,winy,,,%WhichWindow%
    ControlGetPos, x, y, w, h, %WhichControl%, ahk_id %WhichWindow%
    ;~ ToolTip, %WhichControl%`nX%X%`tY%Y%`nW%W%`t%H%
    if ( 0 = not_Edit_InFocus())
    {
    	If (IME_GET()=1)
    		ToolTip,中
    	else
    		ToolTip, EN
    }
    return
     
    ~Shift up::
    ~Lbutton up::
    Sleep,1000
    ToolTip
    return
     
    not_Edit_InFocus(){
    Global Edit_Mode
    ControlGetFocus theFocus, A ; 取得目前活動窗口 的焦點之控件标识符
    return  !(inStr(theFocus , "Edit") or  (theFocus = "Scintilla1")   ;把查到是文字編輯卻不含Edit名的theFucus加進來
    or (theFocus ="DirectUIHWND1") or  (Edit_Mode = 1))
    }
     
    IME_GET(WinTitle="")
    ;-----------------------------------------------------------
    ; IMEの状態の取得
    ;    対象: AHK v1.0.34以降
    ;   WinTitle : 対象Window (省略時:アクティブウィンドウ)
    ;   戻り値  1:ON 0:OFF
    ;-----------------------------------------------------------
    {
        ifEqual WinTitle,,  SetEnv,WinTitle,A
        WinGet,hWnd,ID,%WinTitle%
        DefaultIMEWnd := DllCall("imm32ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
     
        ;Message : WM_IME_CONTROL  wParam:IMC_GETOPENSTATUS
        DetectSave := A_DetectHiddenWindows
        DetectHiddenWindows,ON
        SendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%
        DetectHiddenWindows,%DetectSave%
        Return ErrorLevel
    }
    

    以下转自:https://www.autoahk.com/archives/8755

    ahk中如何识别光标
    A_Cursor:当前显示的鼠标光标类型. 其值为下列单词的其中一个: AppStarting, Arrow, Cross, Help, IBeam, Icon, No, Size, SizeAll, SizeNESW, SizeNS, SizeNWSE, SizeWE, UpArrow, Wait, Unknown. 与 size 指针类型一起的首字母表示方向, 例如 NESW = NorthEast+SouthWest. 手型指针 (点击和抓取) 属于 Unknown 类别.

    A_Cursor是一个内置变量,不知道大家的理解能力,我看了帮助文档中的解释,我是没有太理解,这些光标类型具体指的是什么类型呢?

    深入研究
    下面我详细研究了一下,分享给大家!

    APPSTARTING 标准的箭头和小沙漏
    ARROW 标准的箭头
    CROSS 十字光标
    HAND Windows 98/Me, Windows 2000/XP: Hand
    HELP 标准的箭头和问号
    IBEAM 工字光标
    ICON Obsolete for applications marked version 4.0 or later.
    NO 禁止圈
    SIZE Obsolete for applications marked version 4.0 or later.
    SIZEALL 四向箭头指向东、西、南、北
    SIZENESW 双箭头指向东北和西南
    SIZENS 双箭头指向南北
    SIZENWSE 双箭头指向西北和东南
    SIZEWE 双箭头指向东西
    UPARROW 垂直箭头
    WAIT 沙漏,Windows7系统下会显示为选择的圆圈表示等待
    Unknown未知


    作者:liuyukuan
    来源:CSDN
    原文:https://blog.csdn.net/liuyukuan/article/details/82291632
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    FZU 2150 Fire Game (高姿势bfs--两个起点)(路径不重叠:一个队列同时跑)
    HDU1010 Tempter of the Bone【小狗是否能逃生----DFS奇偶剪枝(t时刻恰好到达)】
    MySQL--9存储引擎
    MySQL--7MySQL自定义函数
    MySQL--5子查询与连接小结
    MySQL--4操作数据表中的记录小结
    MySQL--6运算符和函数小结
    MySQL--8MySQL存储过程小结
    Hybrid设计--如何落地一个Hybrid项目
    Hybrid设计--离线更新
  • 原文地址:https://www.cnblogs.com/guyk/p/10923952.html
Copyright © 2011-2022 走看看