ainizm 发表于 2013-10-20 15:16:12

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

本帖最后由 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 & "," & $aPos)
。。。。。。


                EndIf
    EndIf
WEnd
DllClose($dll)

cyl675 发表于 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 & "," & $aPos)
                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 & "," & $aPos)
                        EndIf
                EndIf
               
        EndIf
       
WEnd
DllClose($dll)
用IsPressed效率太低,你的代码要先按左键然后按下右键,松开时是先松开左键然后右键,先松开右键然后左键不行

ainizm 发表于 2013-10-24 19:20:40

非常感谢!
页: [1]
查看完整版本: 已解决 鼠标左键和右键松开时保存第二个坐标XY坐标,写一半卡住了,请教