Khryus Posted April 5, 2012 Posted April 5, 2012 Hey, I was thinking if it was possible to detect when a file is dragged inside a window. If so, how would you do that? (What I want to do is something much like "drag a file in this window to open it") "The story of a blade is linked in Blood." ―Yasuo
Moderators Melba23 Posted April 5, 2012 Moderators Posted April 5, 2012 megablox, ProgAndy gave me this code a while ago: #include <Array.au3> #include <GUIConstantsEx.au3> Global $gaDropFiles[1], $iDropItem = -1 Global $WM_DROPFILES = 0x233 GUICreate("DropIt", 241, 312, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 45, -1, 0x00000018); WS_EX_ACCEPTFILES $FILES_DROPPED = GUICtrlCreateDummy() GUISetState() GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC') While True Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $FILES_DROPPED $aFiles = $gaDropFiles _ArrayDisplay($aFiles) EndSwitch WEnd Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam) Local $nSize, $pFileName Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 0) ReDim $gaDropFiles[$nAmt[0]] For $i = 0 To $nAmt[0] - 1 $nSize = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0) $nSize = $nSize[0] + 1 $pFileName = DllStructCreate('wchar[' & $nSize & ']') DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize) $gaDropFiles[$i] = DllStructGetData($pFileName, 1) $pFileName = 0 Next GUICtrlSendToDummy($FILES_DROPPED, $nAmt[0]) EndFunc ;==>WM_DROPFILES_FUNC M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
JohnOne Posted April 5, 2012 Posted April 5, 2012 Search $GUI_DROPACCEPTED and $WS_EX_ACCEPTFILES in the help file. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
Khryus Posted April 5, 2012 Author Posted April 5, 2012 That's really nice, thanks (also @ ProgAndy) "The story of a blade is linked in Blood." ―Yasuo
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now