Jump to content

Drag and Drop


Recommended Posts

Can I get some more information about handling drag and drop? I can't find so much information about it in the help file.

thnx, Kip

what exacly do you want to know? whatever it is search in autoit library and here

Link to comment
Share on other sites

no, that's only Perform Drag/drop. But I wanna know: If you drag and drop in a GUI, where does the drag start (x,y) and where does it end? (x,y)

You want to CAUSE a drag-n-drop, or MONITOR one?

If you want to do it from the script, look at MouseClickDrag() in the help file.

If you want to monitor the user doing it, I think you want _IsPressed() to monitor the button down and button up, getting the mouse coordinates with MouseGetPos() at each end. This would raise the question of how to tell the difference between a click-n-drag and just a click... I don't know.

:)

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

In that case, this will assume that holding down left click more than 500msec is a "click-n-drag", and will ToolTip the X/Y coordinates at each end:

#include <misc.au3>

While 1
    If _IsPressed("01") Then
        $MousePos = MouseGetPos()
        $Timer = TimerInit()
        Do
            If Not _IsPressed("01") Then ExitLoop
        Until TimerDiff($Timer) > 500
        If _IsPressed("01") Then
            ToolTip("Left click held down at:" & @LF & _
                    "X = " & $MousePos[0] & "   Y = " & $MousePos[1])
            Do
                Sleep(5)
            Until Not _IsPressed("01")
            $MousePos = MouseGetPos()
            ToolTip("Left click released at:" & @LF & _
                    "X = " & $MousePos[0] & "   Y = " & $MousePos[1] & @LF & _
                    "In " & Round(TimerDiff($Timer) / 1000, 3) & " seconds.")
            ExitLoop
        EndIf
    EndIf
WEnd

MsgBox(64, "Success", "Detected left click held more than 500msec.")

There may be some slick Windows API to tell if an actual object (text, file name, etc.) is being dragged, but that would require an answer from smarter people than me.

:)

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...