使用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

代码说明

  1. 创建并显示图标 (CreateAndShowIcons())

    • 使用new GuiControl创建图标对象,设置图标文件路径,并将图标添加到GUI中。
    • 使用WinMove调整图标位置。
  2. 隐藏并释放图标 (HideAndDestroyIcons())

    • 使用Gui, Hide隐藏图标窗口。
    • 使用icon.Delete()释放图标对象。
  3. 监听'G'键按下和释放事件 ($g::, $g Up::)

    • 当按下'G'键时,调用CreateAndShowIcons()显示图标。
    • 当松开'G'键时,调用HideAndDestroyIcons()隐藏图标,并可以添加其他需要触发的操作。
  4. 监听鼠标移动事件 (MouseMove)

    • 当'G'键按下时,获取鼠标位置,判断鼠标是否在图标范围内。
    • 如果鼠标在图标范围内,则设置图标高亮;否则取消图标高亮。

注意事项

  • 将代码中的icon1.ico, icon2.ico, icon3.ico替换为你的实际图标文件路径。
  • 可以根据需要调整图标的位置和大小。
  • 此示例仅供参考,你可以根据自己的需求进行修改和扩展。

总结

通过以上代码,你可以实现按下'G'键显示图标,鼠标悬停高亮,松开'G'键后图标消失并触发自定义操作的功能。希望本文对你有所帮助!

AutoHotkey实现按下G键显示图标,鼠标悬停高亮,松开触发操作

原文地址: https://www.cveoy.top/t/topic/crr0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录