Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Перенос кнопки иконбара в меню запуск 
Author Message
Batya



PostPosted: Fri Jun 16, 2006 13:25    Post subject: Reply with quote

Вот новый вариант скрипта с учетом предложения от 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
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group