如何解决如何在没有背景颜色的情况下通过进度条 GUI 进行 Autohotkey 单击
我借助 Autohotkey 论坛中的一些片段,使用 Autohotkey 制作了一个简单的计时器, 类似于浏览器中许多网页上的页面加载栏,但适用于 Windows。
现在它按预期工作,具有这些功能:
但是,我注意到当透明度设置为 100 时,总是有一个灰色的透明背景,
有人知道我可以调整任何参数来制作没有背景的进度条吗?
此处为这个简单计时器的完整 Autohotkey 代码:
#Persistent
WinTitle = toptimer
Gui,New,hwndMyGui
global MyProgress
; 30 minutes
time := 30 * 60 * 1000
tick:=A_TickCount+time
Gui,+E0x20 -Caption +AlwaysOnTop +Owner +LastFound
; Gui,-Caption +AlwaysOnTop +Owner +LastFound
WinSet,Transparent,100
; Gui,Margin,0
Gui,-1,-1
Gui,Add,Progress,w1920 h4 cbFF0000 Range%A_TickCount%-%tick% vMyProgress
; Gui,Show,NA
Gui,x0 y0 w%A_ScreenWidth%
While A_TickCount<=tick {
GuiControl,MyProgress,% A_TickCount
Sleep 16
}
Gui,Destroy
ExitApp
感谢@0x464e 的好建议,
现在我只画一个单色的图形界面并改变它的宽度
#Persistent
Gui,hwndMyGui
time := 1 * 60 * 1000
tick:=A_TickCount+time
Gui,+E0x20 -Caption +AlwaysOnTop +Owner +LastFound
WinSet,100
Gui,Color,FF0000
While A_TickCount<=tick {
width0 := A_ScreenWidth * (1 - (tick - A_TickCount)/time)
Gui,x0 y0 w%width0% h5
Sleep 16
}
Gui,Destroy
ExitApp
这使得代码更加简单,背景也消失了。 但是当这个计时器运行时,鼠标左键不起作用,点击资源管理器右上角的最小化/恢复/关闭不起作用。
但是 vscode 的最小化/恢复/关闭按钮工作正常。
退出定时器后,一切正常。
有人帮助找出发生这种情况的原因。
解决方法
出现问题是因为您的 Gui,Show
命令每次都会激活窗口。
添加 NA
(docs) 选项以摆脱这种情况。
或者,您可以使用例如 WinMove
(docs) 来调整窗口大小。
在这种情况下,您还需要使用 SetWinDelay
(docs) 来消除 WinMove
命令后发生的延迟。
我不确定哪种方法更好,不能要求我打开 AHK 源来查看这两者之间到底有什么区别。如果您足够关心(并且足够了解 C/C++),请务必看一看。
以下是这两种方法的修订脚本:
time := 1 * 60 * 1000
tick := A_TickCount + time
Gui,+E0x20 -Caption +AlwaysOnTop +Owner +LastFound
WinSet,Transparent,100
Gui,Color,FF0000
While (A_TickCount <= tick)
{
width0 := A_ScreenWidth * (1 - (tick - A_TickCount) / time)
Gui,Show,x0 y0 w%width0% h5 NA
Sleep,16
}
ExitApp
SetWinDelay,0
time := 1 * 60 * 1000
tick := A_TickCount + time
Gui,FF0000
Gui,y0 x0 h5
While (A_TickCount <= tick)
{
width0 := A_ScreenWidth * (1 - (tick - A_TickCount) / time)
WinMove,% width0
Sleep,16
}
ExitApp
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。