AutoHotkey实现按下G键显示图标,鼠标悬停高亮,松开触发操作
使用AutoHotkey实现按下G键显示图标,鼠标悬停高亮,松开触发操作
本文将介绍如何使用AutoHotkey编写脚本,实现按下'G'键在屏幕上显示多个图标,鼠标移到图标上方时图标高亮显示,松开'G'键后图标消失并触发自定义操作。
代码示例
#NoEnv
SetBatchLines -1
CoordMode, Mouse, Screen
gKeyDown := false
; 创建并显示图标
CreateAndShowIcons() {
; 创建图标对象
; 例如:icon1.ico, icon2.ico, icon3.ico
icon1 := new GuiControl, +IconNoResize +E0x20 +E0x2
icon1File := 'icon1.ico'
icon1.Add('Icon', icon1File)
icon1.Show()
icon2 := new GuiControl, +IconNoResize +E0x20 +E0x2
icon2File := 'icon2.ico'
icon2.Add('Icon', icon2File)
icon2.Show()
icon3 := new GuiControl, +IconNoResize +E0x20 +E0x2
icon3File := 'icon3.ico'
icon3.Add('Icon', icon3File)
icon3.Show()
; 显示图标
Gui, Show, x100 y100 w100 h100, Icons
; 将图标移动到合适的位置
; 可根据需要设置图标的位置坐标
WinMove, %icon1%, , 100, 100
WinMove, %icon2%, , 200, 100
WinMove, %icon3%, , 300, 100
}
; 隐藏并释放图标
HideAndDestroyIcons() {
; 隐藏图标
Gui, Hide
; 释放图标对象
icon1.Delete()
icon2.Delete()
icon3.Delete()
}
; 监听'G'键按下和释放事件
$g::
gKeyDown := true
CreateAndShowIcons()
return
$g Up::
gKeyDown := false
HideAndDestroyIcons()
; 这里可以添加你想要触发的操作
return
; 监听鼠标移动事件
MouseMove:
; 根据鼠标位置判断是否需要高亮显示图标
if (gKeyDown) {
MouseGetPos, mouseX, mouseY
; 判断鼠标是否在图标范围内
if (mouseX >= 100 && mouseX <= 400 && mouseY >= 100 && mouseY <= 200) {
; 设置图标高亮
icon1.Set('Highlight')
icon2.Set('Highlight')
icon3.Set('Highlight')
}
else {
; 取消图标高亮
icon1.Set('Icon')
icon2.Set('Icon')
icon3.Set('Icon')
}
}
return
代码说明
-
创建并显示图标 (CreateAndShowIcons())
- 使用
new GuiControl创建图标对象,设置图标文件路径,并将图标添加到GUI中。 - 使用
WinMove调整图标位置。
- 使用
-
隐藏并释放图标 (HideAndDestroyIcons())
- 使用
Gui, Hide隐藏图标窗口。 - 使用
icon.Delete()释放图标对象。
- 使用
-
监听'G'键按下和释放事件 ($g::, $g Up::)
- 当按下'G'键时,调用
CreateAndShowIcons()显示图标。 - 当松开'G'键时,调用
HideAndDestroyIcons()隐藏图标,并可以添加其他需要触发的操作。
- 当按下'G'键时,调用
-
监听鼠标移动事件 (MouseMove)
- 当'G'键按下时,获取鼠标位置,判断鼠标是否在图标范围内。
- 如果鼠标在图标范围内,则设置图标高亮;否则取消图标高亮。
注意事项
- 将代码中的
icon1.ico,icon2.ico,icon3.ico替换为你的实际图标文件路径。 - 可以根据需要调整图标的位置和大小。
- 此示例仅供参考,你可以根据自己的需求进行修改和扩展。
总结
通过以上代码,你可以实现按下'G'键显示图标,鼠标悬停高亮,松开'G'键后图标消失并触发自定义操作的功能。希望本文对你有所帮助!
原文地址: https://www.cveoy.top/t/topic/crr0 著作权归作者所有。请勿转载和采集!