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

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

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

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

   

sproxy



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


Код:
;~ Opt("TrayIconHide", 1)
Opt('TrayIconDebug', 1)
 
Local   $sPath_DirSerchLnk  = 'd:\Обмен'
Local   $sSerchFile_RegMask = '.+\.lnk'
 
Local   $sPath_DirCreateLnk = 'd:\qweqwe\'; -1: создовать ярлыки в той же папки, где были найденны файлы. Либо можно задать любую папку, в которой будут создоваться ярлыки
Local   $sPath_FileSaveAu3  = 'c:\test2\Shortcut.au3'
 
$sPath_DirSerchLnk = StringRegExpReplace($sPath_DirSerchLnk, '\\+$', '')
$sPath_DirCreateLnk = StringRegExpReplace($sPath_DirCreateLnk, '\\+$', '')
 
_CreatShortcutAU3File($sPath_DirSerchLnk, $sSerchFile_RegMask, $sPath_DirCreateLnk, $sPath_FileSaveAu3)
If @error Then MsgBox(48, 'Ошибка: ' & @error, 'Искомые файлы не найдены')
 
Func _CreatShortcutAU3File($sPathDirSerchLnk, $sSerchFileRegMask, $sPathDirCreateLnk, $sPathFileSaveAu3)
    Local $aFilesList, $aFileInfo[7], $sPathFileLnk, $sDirFileLnk, $sShortcut, $hFile
 
    $aFilesList
= _GetDirsFilesList($sPathDirSerchLnk, $sSerchFileRegMask)
    If @error == -1 Then Return SetError(1)
 
    For $i=1 To UBound($aFilesList)-1
        $aFileInfo = FileGetShortcut($aFilesList[$i])
 
        $sPathFileLnk = StringRegExpReplace($aFileInfo[0], '(.+?)\.[^\\\/:\*\?\"\<\>\|]*', '\1.lnk')
        If @extended < 1 Then $sPathFileLnk = $aFileInfo[0] & '.lnk'
        If $sPathDirCreateLnk <> -1 AND StringStripWS($sPathDirCreateLnk, 8) <> '' Then $sPathFileLnk = StringRegExpReplace($sPathFileLnk, '.+\\(.+)', StringReplace($sPathDirCreateLnk, '\', '\\') & '\\\1')
 
        $sShortcut &= 'FileCreateShortcut("' & $aFileInfo[0] & '", "' & $sPathFileLnk & '", "' & $aFileInfo[1] & '", "' & $aFileInfo[2] & '", "' & $aFileInfo[3] & '", "' & $aFileInfo[4] & '")' & @CRLF
    Next
 
    If
$sShortcut == '' Then Return SetError(2)
 
    If StringStripWS($sPathFileSaveAu3, 8) == '' Then $sPathFileSaveAu3 = @ScriptDir & '\' & 'Shortcut.au3'
    $sDirFileLnk = StringRegExpReplace($sPathFileLnk, '(.+)\\.+', '\1')
    $sShortcut = 'Opt("TrayIconHide", 1)' & @CRLF & @CRLF & 'If NOT FileExists("' & $sDirFileLnk & '") Then DirCreate("' & $sDirFileLnk & '")' & @CRLF & @CRLF & $sShortcut
 
    $hFile
= FileOpen($sPathFileSaveAu3, 2+8)
    FileWrite($hFile, $sShortcut)
    FileClose($hFile)
EndFunc
 
Func
_GetDirsFilesList($sStartDirPath, $sRegMask, $iAddFiles=1, $iAddDirs=0, $sRootPath=1)
    $sStartDirPath = StringRegExpReplace($sStartDirPath, '\\+$', '')
    Local $aRetArray[1], $aSubDirsArr, $sFindNextFile, $sCurrentPath, $iYesAdd
 
    Local $sFindFirstFile = FileFindFirstFile($sStartDirPath & '\' & '*')
    If @error = 1 Then Return SetError(-1)
 
    If $sRootPath == 1 AND $iAddDirs == 1 Then
        $aRetArray[0] += 1
        ReDim $aRetArray[2]
        $aRetArray[1] = $sStartDirPath
    EndIf
 
    While
1
        $sFindNextFile = FileFindNextFile($sFindFirstFile)
        If @error = 1 Then ExitLoop
 
        $sCurrentPath = $sStartDirPath & '\' & $sFindNextFile
 
        $iYesAdd
= 0
        If StringInStr(FileGetAttrib($sCurrentPath), 'D') Then
            If
$iAddDirs == 1 Then $iYesAdd = 1
        Else
            If
$iAddFiles == 1 Then $iYesAdd = 1
        EndIf
 
        If NOT
StringRegExp(StringRegExpReplace($sCurrentPath, '.+\\(.+)', '\1'), $sRegMask) Then $iYesAdd = 0
 
        If $iYesAdd == 1 Then
            $aRetArray[0] += 1
            ReDim $aRetArray[$aRetArray[0]+1]
            $aRetArray[$aRetArray[0]] = $sCurrentPath
        EndIf
 
        $aSubDirsArr = _GetDirsFilesList($sCurrentPath, $sRegMask, $iAddFiles, $iAddDirs, 0)
 
        If IsArray($aSubDirsArr) Then
            For
$i = 1 To $aSubDirsArr[0]
                $aRetArray[0] += 1
                ReDim $aRetArray[$aRetArray[0]+1]
                $aRetArray[$aRetArray[0]] = $aSubDirsArr[$i]
            Next
        EndIf
    WEnd

 
    FileClose($sFindFirstFile)
 
    SetError(0)
    Return $aRetArray
EndFunc


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