如何切换鼠标光标的可见性?隐藏鼠标光标在某些视频播放器和 PC 游戏中非常有用,因为此功能无法自动完成。
答案1
这是来自优秀的 AHK 论坛的一个简单解决方案。https://autohotkey.com/boards/viewtopic.php?p=36693#p36693
detectHiddenWindows, On
gui +hwndgHwnd
gui,show,hide w1 h1
winset,transparent,1,ahk_id %gHwnd%
gui +alwaysOnTop +toolWindow -caption +0x80000000
return
ScrollLock::
while(a_timeidlephysical>300000) ; 5-minutes
sleep 100
tog:=!tog
if(tog){
blockinput,mousemove
dllcall("ShowCursor","uint",0)
mousegetpos,mx,my,active
gui +Owner%active%
gui,show,x%mx% y%my% noactivate
} else {
blockinput,mousemoveoff
gui,cancel
dllcall("ShowCursor","uint",1)
}
return
搜索这里任何 AHK 资源。当然,我建议你进一步学习该语言。:)
答案2
这是我的答案,改编自 derz00 的答案,(谢谢,这对我的申请非常有用)
再次,它是一个自动热键脚本。
但是,我做了一些关键更改。该脚本使用相同的键来隐藏和显示鼠标,而我的脚本分别使用“[”和“]”来隐藏和显示,这样我就可以具体了解在任何给定时间采取了哪些操作,而无需知道当前状态(不要问为什么,我只是需要它。)
它还允许鼠标在隐藏时移动,并且取消了当用户输入空闲时间过长时脚本不响应的功能。
gui +hwndgHwnd
gui,show,hide w1 h1
winset,transparent,1,ahk_id %gHwnd%
gui +alwaysOnTop +toolWindow -caption +0x80000000
return
:*:]::
{
sleep 5
gui,cancel
dllcall("ShowCursor","uint",1)
return
}
:*:[::
{
sleep 5
dllcall("ShowCursor","uint",0)
mousegetpos,mx,my,active
gui +Owner%active%
gui,show,x%mx% y%my% noactivate
return
}