找回密码
 加入
搜索
查看: 1816|回复: 2

[系统综合] 已解决 鼠标左键和右键松开时保存第二个坐标XY坐标,写一半卡住了,请教

[复制链接]
发表于 2013-10-20 15:16:12 | 显示全部楼层 |阅读模式
本帖最后由 ainizm 于 2013-10-24 19:21 编辑

准备写个截图工具,鼠标左键+右键按下时保存第一个坐标XY坐标,鼠标左键和右键松开时保存第二个坐标XY坐标,然后用这2个坐标截图,生成同样大面积的GUI直接置顶显示出来。
    鼠标左键和右键松开时保存第二个坐标如何写,请教
#include <Misc.au3>
#include <ScreenCapture.au3>

$dll = DllOpen("user32.dll")

While 1
    Sleep ( 10 )
    If _IsPressed("01", $dll) Then
                If _IsPressed("02", $dll) Then
                        Local $aPos = MouseGetPos()
                        ;MsgBox(4096, "鼠标坐标 X,Y:", $aPos[0] & "," & $aPos[1])
。。。。。。


                EndIf
    EndIf
WEnd
DllClose($dll)
发表于 2013-10-22 13:47:22 | 显示全部楼层
本帖最后由 cyl675 于 2013-10-22 14:52 编辑

#include <Misc.au3>
#include <ScreenCapture.au3>

$dll = DllOpen("user32.dll")
$flag = False;左右键全按下开关

While 1
        Sleep(10)
        If _IsPressed("01", $dll) Then
                If _IsPressed("02", $dll) Then
                        Local $aPos = MouseGetPos()
                        $flag = True;当左右键全按下去时开关打开
                        ;MsgBox(4096, "左右键全按时坐标 X,Y:", $aPos[0] & "," & $aPos[1])
                EndIf
        EndIf
        If $flag Then
                Sleep(10)
                If Not _IsPressed("01", $dll) Then
                        If Not _IsPressed("02", $dll) Then
                                Local $aPos = MouseGetPos()
                                $flag = False;当左右键全松开时开关关闭
                                MsgBox(4096, "左右键全松开时坐标 X,Y:", $aPos[0] & "," & $aPos[1])
                        EndIf
                EndIf
                
        EndIf
        
WEnd
DllClose($dll)
用IsPressed效率太低,你的代码要先按左键然后按下右键,松开时是先松开左键然后右键,先松开右键然后左键不行
 楼主| 发表于 2013-10-24 19:20:40 | 显示全部楼层
非常感谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 19:24 , Processed in 0.109695 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表