[AHK]输入法状态提示,中文状态提示“中”,英文状态提示“EN”

105 篇文章 1 订阅
91 篇文章 1 订阅

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

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:代码科技 设计师:Amelia_0503 返回首页
评论 13

打赏作者

liuyukuan

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值