AutoHotkey:用鼠标坐标计算不起作用

Posted

技术标签:

【中文标题】AutoHotkey:用鼠标坐标计算不起作用【英文标题】:AutoHotkey: calculating with mouse coordinates does not work 【发布时间】:2022-01-16 10:35:44 【问题描述】:

假设在单击并按住时,我想显示一个彩色框,它覆盖了单击和释放鼠标左键之间的区域。如果Ctrl 被按住,则以下简单脚本会在单击和释放时跟踪鼠标位置,并显示带有覆盖区域的工具提示。仅当我为框指定固定大小时,才显示框:

但是,如果我尝试计算框的大小(取消注释最后一行代码),大多数时候没有框显示?

Ctrl & LButton::
    MouseGetPos, start_x, start_y

    Keywait, LButton
    MouseGetPos, end_x, end_y

    ; show coordinates for debugging
    ToolTip % "dx: " . end_x-start_x . "`ndy: " . end_y-start_y

    Gui, -Caption -Border +AlwaysOnTop
    Gui, Color, red

    ; fixed size works ...
    Gui, Show, % "x" start_x "y" start_y "w" 100 "h" 10

    ; ... but the following doesnt work
    ;Gui, Show, % "x" start_x "y" start_y "w" end_x-start_x "h" end_y-start_y

【问题讨论】:

【参考方案1】:

由于屏幕坐标可以为负,请使用abs()(docs) 将负宽度或高度设为正:Gui, Show, % "x" start_x "y" start_y "w" abs(end_x-start_x) "h" abs(end_y-end_x)

【讨论】:

谢谢!不幸的是,您发现的错字是通过复制引入的。但是由于您的建议,我发现应该使用绝对值,因为高度和宽度不能为负数。您能否编辑您的帖子并建议使用 abs(),以便对未来的读者有意义? 是的,abs() 如果您使用负屏幕坐标会很好。我将在其中进行编辑。

以上是关于AutoHotkey:用鼠标坐标计算不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 样式字幕多行不起作用

为啥鼠标滚动条不起作用?

如果无法识别,如何在游戏中模拟硬件鼠标点击?

多维动态数组,为啥不起作用?

如何为 AutoHotkey 脚本添加管理员权限?

Hibernate HQL Count Distinct 不起作用?