输入法状态提示,中文状态提示“中”,英文状态提示“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("imm32\ImmGetDefaultIMEWnd", 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未知