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
|
|
| |
|