Batya

|
Posted: Fri Jun 16, 2006 13:25 Post subject: |
|
|
Вот новый вариант скрипта с учетом предложения от Volniy и возможных ошибок при определении инишника:
Code: | '========================================================
' Копирование кнопки из панели TC в меню "Запуск"
' Предварительно на кнопке надо выполнить "Копировать"
'========================================================
Option Explicit
Dim TCS, IniFile, i, ClipB, Data, MenuLimit, LenData
Dim Name, Cmd, Params, ExecPath, Iconic
Set TCS = CreateObject("TCScript.Helper")
ClipB = TCS.GetTextFromClip
' Если перевая строка соответствует синтаксису кнопки
If UCase(Left(ClipB, 17)) = "TOTALCMD#BAR#DATA" Then
Data = Split(ClipB, vbCrLf)
Else
Set TCS = Nothing
Wscript.Quit
End If
LenData = UBound(Data)
If LenData = 0 Then
Set TCS = Nothing
Wscript.Quit
End If
' Получаем пути ини-файлов TC
TCS.GetIniFiles
IniFile = TCS.MainINI
MenuLimit = 200
Cmd = ""
' Ищем свободный номер для пункта меню
For i = 1 To MenuLimit
If Len(TCS.INIRead(IniFile, "user", "menu" & i, "")) = 0 Then
Cmd = Data(1)
Exit For
End If
Next
' Добавляем меню, если есть свободный номер не больше MenuLimit
If Cmd <> "" Then
Params = ""
Name = ""
ExecPath = ""
Iconic = ""
If LenData >= 2 Then Params = Data(2)
If LenData >= 4 Then Name = Data(4)
If LenData >= 5 Then ExecPath = Data(5)
If LenData >= 6 Then Iconic = Data(6)
If Name <> "" Then
TCS.INIWrite IniFile, "user", "menu" & i, Name
Else
TCS.INIWrite IniFile, "user", "menu" & i, Cmd
End If
TCS.INIWrite IniFile, "user", "cmd" & i, Cmd
TCS.INIWrite IniFile, "user", "param" & i, Params
TCS.INIWrite IniFile, "user", "path" & i, ExecPath
TCS.INIWrite IniFile, "user", "iconic" & i, Iconic
' Перечитаем меню
TCS.SendCommand "cm_ChangeStartMenu"
TCS.SendKeystroke "{Enter}"
End If
Set TCS = Nothing
Wscript.Quit
|
Last edited by Batya on Tue Jun 20, 2006 17:39; edited 9 times in total |
|