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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    《剑指offer》第六十八题(树中两个结点的最低公共祖先)
    《剑指offer》第六十七题(把字符串转换成整数)
    《剑指offer》第六十六题(构建乘积数组)
    《剑指offer》第六十五题(不用加减乘除做加法)
    ECShop 2.7.2版本,数据库表
    织梦在导航栏下拉菜单中调用当前栏目子类的方法
    让dedecms autoindex,itemindex 从0到1开始的办法!
    dedeCMS列表页中如何给前几条文章加单独样式?
    dedecms标签调用大全
    完美解决ecshop与jquery冲突兼容
  • 原文地址:https://www.cnblogs.com/guyk/p/10923952.html
Copyright © 2011-2022 走看看