DonationCoder.com forum
 
Read-only archive. This is a static copy of the DonationCoder.com forum. Reading and searching work as before; logging in, posting and private messages do not.
Archive of 2026-10-21 · About this archive · Main site

Author Topic: AutoHotKey: How to drag & drop _safely_  (Read 9,218 times)

nosh

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,441
AutoHotKey: How to drag & drop _safely_
« on: April 18, 2008, 09:29 AM »
I've written a script to combine two of my favorite programs, AvaFind & Xplorer². The script selects the results (files) from Avafind and drops them to an X² scrap pane. It's running fine but since this is a drag-drop operation I would like to eliminate any risk of dragging the wrong source (and/or) to the wrong target. Both apps are positioned by the script before the drag-drop but if one doesn't load due to some errors or a third app gets focus at the wrong time the results could be potentially disastrous. 8)

And ideas how to eliminate this risk? Just ideas without code sample would be very welcome too.


Quote
F11::
; AvaFind small thumb preview in X2 scrap pane
IfWinActive ,ahk_class AUI40WndClass
{ WinActivate ,ahk_class AUI40WndClass
            WinMove 0,0
    ; preview pane running
IfWinExist, scrap² - Avafind Preview.cida
{ WinActivate, scrap² - Avafind Preview.cida
WinMove, 1281,0
WinMaximize
Sleep, 300
Send {Alt}vpt
Sleep, 300
Send {Alt}vau
WinActivate ,ahk_class AUI40WndClass
Sleep, 300
Send ^a
MouseClickDrag, L, 600, 130, 2470, 900
WinActivate, scrap² - Avafind Preview.cida
Sleep, 1000
Send ^r
return
}
; preview pane not started yet
            else
{
Run D:\Xplorer2\Avafind Preview.cida, , Max
WinWait, scrap² - Avafind Preview.cida
WinActivate, scrap² - Avafind Preview.cida
WinMove, 1281,0
Sleep, 300
Send ^o
Sleep, 300
Send {Alt}vpt
Sleep, 300
Send {Alt}vad
Sleep, 300
Send {Alt}vvr{{}pictures{}}{Enter}
WinActivate ,ahk_class AUI40WndClass
Sleep, 300
Send ^a
MouseClickDrag, L, 600, 130, 2470, 900
WinActivate, scrap² - Avafind Preview.cida
Send ^r
return
}
}

; not Avafind - normal behavior
else
{ Send {F11}
return
}

wr975

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 369
    • Coding Snacks
Re: AutoHotKey: How to drag & drop _safely_
« Reply #1 on: April 19, 2008, 09:32 PM »
Two ideas:

Set the window AlwaysOnTop (WinSet, AlwaysonTop, On, ...) to avoid another application stealing focus

Use IfWin(Not)Active to check if everything is OK, else goto error & abort.

nosh

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 1,441
Re: AutoHotKey: How to drag & drop _safely_
« Reply #2 on: April 20, 2008, 02:52 AM »
Will implement them both. Thanks!

Original address: https://www.donationcoder.com/forum/index.php?topic=13087.0