原型
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未知
使用方法
其实使用起来还是蛮简单的
MsgBox,% A_Cursor
内置变量只允许取值,不允许赋值,如果想要赋值,需要调用系统函数LoadCursor实现!具体的这里就不详细介绍了!有兴趣的可以自行搜索一下!
以下内容来自https://blog.csdn.net/liuyukuan/article/details/82291632
;功能:输入法状态提示 ;环境: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 }
感谢分享
谢谢河老师
如果是单击shift英文,双击中文就好了
我之前写过这个,找不到了,但核心的代码我还有,现在是左shift 英文,右shift 中文。
===搜狗输入法切换,利用输入法自己的热键特点,输入法管理只保留搜狗输入法,默认英文状态===
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
; 左Shift强制切换到英文输入法,右Shift强制切换到中文输入法
#Include %A_ScriptDir%
timeInterval := 200
#IfWinNotActive ahk_exe mstsc.exe
; 英文模式
~$LShift::
return
~$LShift up::
if (A_TimeSincePriorHotkey < timeInterval && A_Priorkey = "LShift") {
if ( GetKeyState("CapsLock", "T") ) {
SetCapsLockState, Off
}
if ( WinExist("ahk_class SoPY_Comp") ) {
SendInput {Enter}
}
SendInput ^,
SendInput ^{Space}
}
return
; 切换到搜狗输入法,设置中文模式
~$RShift::
return
~$RShift up::
if ( A_TimeSincePriorHotkey < timeInterval && A_Priorkey = "RShift" ) {
if ( GetKeyState("CapsLock", "T") ) {
SetCapsLockState, Off
}
SendInput ^,
SendInput ^{Space}
Sleep 50
SendInput ^{Space}
SendInput ^,
}
return
/*
; 锁定大写
~$CapsLock::
SetCapsLockState, On
return
*/
#IfWinNotActive ahk_exe mstsc.exe
如果我的鼠标是正常模式,但也是在编辑状态,就没提示了