#include #include #include #Include #include #include #include Opt("GUIOnEventMode", 1) Local $hMain[8] Local $GUI, $GUIChild Local $aDropFiles _GUIMain() While 1 WEnd Func _GUIMain() $hMain[0] = 7 $GUI = GUICreate("GUIMain",1245,800,-1,-1,$WS_MAXIMIZEBOX,$WS_EX_ACCEPTFILES+$WS_EX_LAYERED) GUICtrlCreatePic(@scriptdir&"\"&"cmd.jpg",0,0,1245,800,$WS_CLIPSIBLINGS) GUICtrlSetState(-1,$GUI_DISABLE) $GUIChild = GUICreate("GUIMain",1245,800,-1,-1,$WS_POPUP,BitOr($WS_EX_LAYERED,$WS_EX_MDICHILD), $GUI) GUISetFont(12, 0, 0, 0, $GUIChild, 5) GUISetBkColor(0x605f5f, $GUIChild) GUICtrlSetDefColor(0xffffff, $GUIChild) GUICtrlSetDefBkColor(0x605f5f, $GUIChild) GUISetIcon(@ScriptDir & "\tools\icon.ico", $GUIChild) GUICtrlCreateLabel("",10,195,400,125,-1,$WS_EX_CLIENTEDGE) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateLabel("aUserDir[1]",15,200,390,25,BitOr($SS_CENTER,$SS_CENTERIMAGE),-1) GUICtrlSetFont(-1,15,0,0,0,5) $hMain[1] = GUICtrlCreateLabel("aUserDir[1]",15,240,390,25,$SS_CENTERIMAGE,$WS_EX_CLIENTEDGE) GUICtrlSetFont(-1,13,0,0,0,5) $hMain[2] = GUICtrlCreateLabel("Drag & Drop or Browse to change.",15,280,260,25,$SS_CENTERIMAGE,$WS_EX_CLIENTEDGE) GUICtrlSetState(-1,BitOr($GUI_SHOW,$GUI_ENABLE,$GUI_DROPACCEPTED)) GUICtrlSetFont(-1,14,0,0,0,5) $hMain[3] = GUICtrlCreateLabel("Browse",280,280,60,25,$SS_CENTERIMAGE+$SS_CENTER,$WS_EX_CLIENTEDGE) $hMain[4] = GUICtrlCreateLabel("Exit",1110,730,120,30,$SS_CENTERIMAGE+$SS_CENTER,$WS_EX_CLIENTEDGE) $hMain[5] = GUICtrlCreateGroup("Open Question",125,362,109,81,-1,-1) $hMain[6] = GUICtrlCreateRadio("On",157,390,53,20,-1,-1) $hMain[7] = GUICtrlCreateRadio("Off",157,416,53,20,-1,-1) GUICtrlCreateGroup("", -99, -99, 1, 1) For $i = 1 To $hMain[0] DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($hMain[$i]), "wstr", 0, "wstr", 0) GUICtrlSetColor(-1, 0xFFFFFF) Next GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES') GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $GUI) GUISetOnEvent($GUI_EVENT_DROPPED, "_Dropped", $GUIChild) GUICtrlSetOnEvent($hMain[3], '_Browse') GUICtrlSetOnEvent($hMain[4], '_Exit') _WinAPI_SetLayeredWindowAttributes($GUIChild, 0x605f5f) GUISetState(@SW_SHOW, $GUI) GUISetState(@SW_SHOW, $GUIChild) EndFunc Func _Browse() MsgBox(0, "Test", "Browse") EndFunc Func _Dropped() _ArrayDisplay($aDropFiles) EndFunc Func _Exit() MsgBox(0, "Test", "Exit") Exit EndFunc Func WM_DROPFILES($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $lParam Local $iSize, $pFileName Local $aRet = DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 0) Global $aDropFiles[$aRet[0] + 1] = [$aRet[0]] For $i = 0 To $aRet[0] - 1 $aRet = DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0) $iSize = $aRet[0] + 1 $pFileName = DllStructCreate("wchar[" & $iSize & "]") DllCall("shell32.dll", "int", "DragQueryFileW", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $iSize) $aDropFiles[$i + 1] = DllStructGetData($pFileName, 1) $pFileName = 0 Next Return $GUI_RUNDEFMSG EndFunc