Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)

Модерирует : gyra, Maz

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

sproxy



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
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')
 
Global $hList = GUICtrlCreateListView('Полученные файлы', 10, 10, 250-20, 200)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    _GUICtrlListView_SetColumnWidth($hList, 0, 1000)
 
GUICtrlCreateButton('Rename', 10, 215, 70, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKBOTTOM+$GUI_DOCKHEIGHT)
    GUICtrlSetOnEvent(-1, '_Rename')
 
GUICtrlCreateButton('Exit', 10+70+2, 215, 70, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM+$GUI_DOCKHEIGHT)
    GUICtrlSetOnEvent(-1, '_Pro_Exit')
 
GUICtrlCreateButton('Rename+Exit', 10+70*2+2*2, 215, 87, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT+$GUI_DOCKBOTTOM+$GUI_DOCKHEIGHT)
    GUICtrlSetOnEvent(-1, '_Rename_Exit')
 
GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES')
GUISetState()
 
Func _Rename()
    Local $i, $sDir
    For $i=0 To _GUICtrlListView_GetItemCount($hList)
        $sDir = _GUICtrlListView_GetItemText($hList, $i)
        DirMove($sDir, StringRegExpReplace($sDir, '(.+\\)(.+)$', '\1' & '_\2'))
        _GUICtrlListView_DeleteItem($hList, $i)
    Next
EndFunc
 
Func
_Rename_Exit()
    _Rename()
    _Pro_Exit()
EndFunc
 
Func
WM_DROPFILES($hWnd, $msg, $wParam, $lParam)
    Local $tBuffer = DllStructCreate('char[256]')
    Local $iString, $sDir, $hSearch, $sFile
    Local $aRet = DllCall('shell32.dll', 'int', 'DragQueryFile', 'int', $wParam, 'int', -1, 'ptr', 0, 'int', 0)
 
    If $aRet[0] > 0 Then _GUICtrlListView_DeleteAllItems($hList)
 
    For $i = 0 To $aRet[0] - 1
        DllCall('shell32.dll', 'int', 'DragQueryFile', 'int', $wParam, 'int', $i, 'ptr', DllStructGetPtr($tBuffer), 'int', DllStructGetSize($tBuffer))
        $sDir = DllStructGetData($tBuffer, 1)
 
        If StringInStr(FileGetAttrib($sDir), 'D') Then
            $hSearch = FileFindFirstFile($sDir & '\*.*')
            If @error Then Return
            Dim
$fFile1 = 0, $fFile2 = 0
            While 1
                $sFile = FileFindNextFile($hSearch)
                If @error Then ExitLoop
                If
$sFile == 'cue'  Then $fFile1 = 1
                If $sFile == 'ape'  Then $fFile2 = 1
                If $sFile == 'flac' Then $fFile2 = 1
                If $sFile == 'wv'   Then $fFile2 = 1
            WEnd
            FileClose($hSearch)
            If $fFile1 AND $fFile2 Then GUICtrlCreateListViewItem($sDir, $hList)
        EndIf
    Next

 
    DllCall('shell32.dll', 'none', 'DragFinish', 'int', $wParam)
    Return $GUI_RUNDEFMSG
EndFunc
 
While
1
    Sleep(10)
WEnd
 
Func
_Pro_Exit()
    Exit
EndFunc

+можно подправить, что бы сразу же после получения списка папок начиналось переименовывание...
 

Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 02:57 12-07-2009
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru