Opt('GUIOnEventMode', 1) Opt('MustDeclareVars', 1) Opt('TrayIconDebug', 1) #include <GUIConstantsEx.au3> #Include <GuiListView.au3> #include <WindowsConstants.au3> HotKeySet('{ESC}', '_Pro_Exit'); ESC - закрыть скрипт Global Const $WM_DROPFILES = 0x0233 GUICreate('Drag Helper', 250, 250, 100, 100, $WS_OVERLAPPEDWINDOW, BitOR($WS_EX_ACCEPTFILES, $WS_EX_TOPMOST)) GUISetOnEvent($GUI_EVENT_CLOSE, '_Pro_Exit') GUICtrlCreateLabel('Reg маска фильтра:', 10, 5, 230, 17) GUICtrlSetResizing(-1, $GUI_DOCKALL) Global $hMask = GUICtrlCreateInput('.+D.+', 10, 20, 175, 18) GUICtrlSetResizing(-1, $GUI_DOCKALL) GUICtrlCreateButton('Rename', 190, 19, 50, 20) GUICtrlSetResizing(-1, $GUI_DOCKALL) GUICtrlSetOnEvent(-1, '_Rename') Global $hList = GUICtrlCreateListView('Полученные файлы', 10, 40, 250-20, 200) GUICtrlSetResizing(-1, $GUI_DOCKBORDERS) _GUICtrlListView_SetColumnWidth($hList, 0, 1000) GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES') GUISetState() Func _Rename() Local $i, $sPath, $sMask = GUICtrlRead($hMask) For $i=0 To _GUICtrlListView_GetItemCount($hList) $sPath = _GUICtrlListView_GetItemText($hList, $i) If NOT StringRegExp($sPath, $sMask) Then ContinueLoop If StringInStr(FileGetAttrib($sPath), 'D') Then DirMove($sPath, $sPath & '_2') MsgBox(64, 'Папка переименованна', 'Из: ' & $sPath & @CRLF & 'в: ' & $sPath & '_2') Else FileMove($sPath, StringRegExpReplace($sPath, '(.+\\.*)\.(.+)$', '\1_2.\2')) MsgBox(64, 'Файл переименован', 'Из: ' & $sPath & @CRLF & 'в: ' & StringRegExpReplace($sPath, '(.+\\.*)\.(.+)$', '\1_2.\2')) EndIf Next EndFunc Func WM_DROPFILES($hWnd, $msg, $wParam, $lParam) Local $tBuffer = DllStructCreate("char[256]") Local $iString ;Get dropped items count Local $aRet = DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", -1, "ptr", 0, "int", 0) If $aRet[0] > 0 Then _GUICtrlListView_DeleteAllItems($hList) ;Getting name from each dropped items For $i = 0 To $aRet[0] - 1 DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", $i, "ptr", DllStructGetPtr($tBuffer), _ "int", DllStructGetSize($tBuffer)) ;~ $iString &= DllStructGetData($tBuffer, 1) & @LF GUICtrlCreateListViewItem(DllStructGetData($tBuffer, 1), $hList) Next DllCall("shell32.dll", "none", "DragFinish", "int", $wParam) ;~ MsgBox(0, "Dropped files", $iString) Return $GUI_RUNDEFMSG EndFunc ;==>WM_DROPFILES While 1 Sleep(10) WEnd Func _Pro_Exit() Exit EndFunc |