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

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

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

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

   

sproxy



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

 
Пример Drag & Drop файлов и папок в Gui скрипта, и переименовывание полученных ресурсов по фильтру.

Код:
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

 

Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 04:04 11-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