[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Andrey_A, ХарВик, chip642  
Script_Command.vbs - Отображает информацию о командах ТС
Andrey_AДата: Среда, 18.04.2012, 19:14 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
Отображает в панели полную информацию о всех командах Total Commander

Code
' Script_Command.vbs    для Script.wdx плагина Total Commander
'========================   Описание   =====================================
' Отображает в панели полную информацию о всех командах Total Commander
' ======================   Как использовать   ================================
' 1. Установить плагин Script.wdx   
'     (если установлен и занят под другие панели, то создайте папку, к примеру Script_Command   
'      и скопируйте в неё файлы Script.wdx и Script.ini.   
'      Script.wdx необходимо будет переименовать в Script_Command.wdx и зарегистрировать)
' 2. Положить в папку с плагином  файл Script_Command.vbs
' 3. В Script.ini прописать Script=Script_Command.vbs в секции [General]
' 4. Настроить набор колонок "• Информация о всех командах TС •"

' Titles=...|• Информация о всех командах TС •
' Widths№=80,43,33,25,23,41,156,255,184,157,140,132
' Options№=-1|1
' Headers№=№ значка\nDec\nHex\nHotKey\nMenu\nCmd\nParam\nTitle\nPath\nButton
' Contents№=  [=script_command.Result]\n [=script_command.Result1]\n [=script_command.Result2]\n[=script_command.Result3]\n[=script_command.Result4]\n[=script_command.Result5]\n[=script_command.Result6]\n[=script_command.Result7]\n[=script_command.Result8]\n[=script_command.Result9]

' Автор:             Аверин Андрей
' Версия:          1.1 (24.08.2011 - 21.11.2011)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-454-1356-16-1334762090
'========================================================================
With CreateObject("Scripting.FileSystemObject")
On Error Resume Next
sExt = LCase(.GetExtensionName(FileName))
If InStr(";em_;cm_", Left(sExt, 3)) > 0 Then   
    Set ListFile = .OpenTextFile(FileName, 1)
    Do While Not ListFile.AtEndOfStream
      Line = ListFile.ReadLine
      If Len(Line) = 0 Then WsEnd
      n = InStr(Line, "=")
      If n > 0 Then   
        Key = LCase(Left(Line, n - 1)) : Value = Mid(Line, n + 1)
        On Error Resume Next
        Select Case Key
          Case "nicon" content = Value
          Case "dec" content1 = Value
          Case "hex" content2 = Value
          Case "menu" content4 = Value
          Case "cmd" content5 = Value
          Case "button" If InStr(Value, ",") > 0 Then content = Mid(Value, InStr(Value, ",") + 1)
          Case "hotkey" content3 = Value
          Case "param" content6 = Value
          'Case "path" content7 = Value
          'Case "title" content8 = Value
        End Select
      End If
    Loop
    WsEnd
End If
End With

Sub WsEnd : ListFile.Close : Set ListFile = Nothing : End Sub



 
Andrey_AДата: Среда, 18.04.2012, 19:16 | Сообщение № 2
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
Создание в папке ComPath файлов с расширениями всех команд

Code
' CreateFilesAllCmdTC.vbs
'========================   Описание   =====================================
' Создание в папке ComPath файлов с расширениями всех команд
' и содержанием подробной информации в каждом о соответствующей команде,
' для дальнейшего отображения в пользовательском наборе колонок
'======================   Дополнение   =====================================
' Возможно совместное использование с плагином Script_Command.wdx и Script_Command.vbs

' Автор:             Аверин Андрей
' Версия:          1.1 (24.08.2011 - 25.10.2011)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-454-1357-16-1334762198
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
'====================   Изменяемые пути   ===================================
TC = FSO.GetAbsolutePathName(CreateObject("WScript.Shell").ExpandEnvironmentStrings("%COMMANDER_PATH%"))
ComPath = GetPath("%COMMANDER_PATH%\Files\Comands") ' папка для создания специальных файлов
UserComm1 = TC & "\UserCmd.ini" ' файл пользовательских команд
UserComm2 = TC & "\Language\Wcmd_Rus.ini" ' файл пользовательских команд 2
TComands = TC & "\TOTALCMD.INC" ' файл встроенных команд Total Commander'a
TComlng = TC & "\Language\Wcmd_Rus.inc" ' файл перевода встроенных команд Total Commander'a
Wcmicons = TC & "\Wcmicons.inc" ' файл сопоставления знаков Total Commander'a
Wincmd = TC & "\Wincmd.ini" ' главный файл конфигурации Total Commander'a
FuncPlus = TC & "\Scripts\Include\FunctionsPlus.vbs"  ' файл с дополнительными функциями
INI = TC & "\Scripts\Include\FunctionsINIRWS.vbs" ' файл с функциями чтения\записи Ini файлов
'========================================================================
Execute FSO.OpenTextFile(FuncPlus).ReadAll
Execute FSO.OpenTextFile(INI).ReadAll

If Not FSO.FolderExists(ComPath) Then
    FSO.CreateFolder(ComPath)
Else
    Call DeleteInFolderFilesNoNames(ComPath, ";Desktop.ini;")
End If

Call EmRead (UserComm2)
Call CmRead(TComands)
Call ArrHotkey(ReadINISection(Wincmd, "Shortcuts"), "")
Call ArrHotkey(ReadINISection(Wincmd, "ShortcutsWin"), "Win + ")

'MsgBox "Создание файлов закончено!"
Set FSO = Nothing : WScript.Quit

' чтение файлов пользовательских команд и их параметров
Sub EmRead(eFile)
    If FSO.FileExists(eFile) Then
      Text = FSO.OpenTextFile(eFile).ReadAll
      If Len(Text) > 0 Then
        Txt = Split(Text, vbNewLine)
        For i = 0 To Ubound(Txt)
          If Len(Txt(i)) > 0 And Instr(Txt(i),"...") = 0 And InStr(Txt(i), "Версия ") = 0 Then
            If Mid(Txt(i), 1, 1) = "[" Then
              eName = Mid(Txt(i), 2, Len(Txt(i)) - 2)
              usFile = CreateFiles("user", eName)
              Call WriteINISection(usFile, eName, ReadINISection(eFile, eName))
            Else
              Value = Mid(Txt(i), InStr(Txt(i), "=") + 1)
              If Len(Value) > 0 Then
                Key = Left(Txt(i),InStr(Txt(i), "=") - 1)
                If UCase(Key) = "BUTTON" Then
                End If
              End If
            End If
          End If
        Next
      End If
    End If
End Sub

' чтение файлов команд Total Commander'a и их параметров; запись информации
Sub CmRead(File)
    If FSO.FileExists(TComlng) Then lngTxt = Split(FSO.OpenTextFile(TComlng, 1).ReadAll, vbNewLine)
    If FSO.FileExists(File) Then
      List = FSO.OpenTextFile(File).ReadAll
      If Len(List) > 0 Then
        Txt = Split(List, vbNewLine)
        For i = 0 To Ubound(Txt)
          If Len(Txt(i)) > 0 Then
            If Mid(Txt(i), 1, 3) = "cm_" Then
              nr = InStr(Txt(i), "=")
              nt = InStr(Txt(i), ";")
              Comand = Left(Txt(i), nr - 1)
              tcFile = CreateFiles("total", Comand)
              cTitle = Mid(Txt(i), nt + 1) : Call WriteINI(tcFile, Comand, "Title", cTitle)
              Number = Mid(Txt(i), nr + 1, nt - nr - 1) : Call WriteINI(tcFile, Comand, "Dec", Number)
              Hx = "$" & Hex(Number) : Call WriteINI(tcFile, Comand, "Hex", Hx)

              iRead = ReadINI(Wcmicons, "mappings", Number)
              Call WriteINI(tcFile, Comand, "Button", "%COMMANDER_PATH%\Wcmicons.dll")
              Call WriteINI(tcFile, Comand, "NIcon", iRead)

              For j = 0 To Ubound(lngTxt) ' поиск названия команды TC в Wcmd_Rus.inc
                ln = InStr(lngTxt(j), "=")
                If Len(lngTxt(j)) > 0 And ln > 0 Then
                  wNumber = Left(lngTxt(j), ln - 1)
                  If wNumber = Number Then
                    Descript = Mid(lngTxt(j), ln + 1, Len(lngTxt(j)) - 1)
                    Call WriteINI(tcFile, Comand, "Menu", Descript)
                    Exit For
                  End If
                End If
              Next

            End If
          End If
        Next
      End If
    End If
End Sub

' создание файлов с именами user или total c расширением команд
Function CreateFiles(sName, sExt)
    sFile = ComPath & "\" & sName & "." & sExt
    On Error Resume Next
    If Not FSO.FileExists(sFile) Then FSO.CreateTextFile(sFile)
    FSO.OpenTextFile(sFile, 2).Write "[" & sExt & "]"
    CreateFiles = sFile
End Function

' считает секции [Shortcuts] и [ShortcutsWin] из Wincmd.ini
' и записывает в файл ComFile командам соответствующие горячие клавиши
Sub ArrHotkey(arrText, Insert)
    aTxt = Split(arrText, vbNewLine)
    For i = 0 To Ubound(aTxt)
      nn = InStr(aTxt(i), "=")
      If Len(aTxt(i)) > 0 And nn > 0 Then
        hot = Left(aTxt(i), nn - 1)
        hot = Replace(hot, "CSA+", "Ctrl + Shift + Alt + ")
        hot = Replace(hot, "AS+", "Alt + Shift +")
        hot = Replace(hot, "CA+", "Ctrl + Alt + ")
        hot = Replace(hot, "CS+", "Ctrl + Shift + ")
        hot = Replace(hot, "A+", "Alt + ")
        hot = Replace(hot, "S+", "Shift + ")
        hot = Replace(hot, "C+", "Ctrl + ")
        hot = Replace(hot, "CAlt", "Ctrl + Alt")
        hot = Insert & hot
        hcmd = Mid(aTxt(i), nn + 1)
        hName = "user"
        If InStr(hcmd, "cm_") > 0 Then hName = "total"
        Call WriteINI(ComPath & "\" & hName & "." & hcmd, hcmd, "hotkey", hot)
      End If
    Next
End Sub

' Возвращает полный путь для заданного относительного пути
Function GetPath(pPath)
    GetPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath)
End Function



 
  • Страница 1 из 1
  • 1
Поиск:

Интеллектуальные права и отказ от ответственности