Страница 1 из 1

Создание кнопки TC по ярлыку

Добавлено: Вт мар 24, 2009 18:50
Batya
Представляю вариант создания кнопки для TC через контекстное меню ярлыков.

Создаем CopyTCButton.vbs:

Код: Выделить всё

'============================================================================
' Через контекстное меню для ярлыка копируется в буфер кнопка TC,
'   аналогичная ярлыку.
' В системе должен быть установлен TCScript.Helper.
'
' Параметры скрипта - имя файла ярлыка
'
' Автор  - Batya
'============================================================================
Option Explicit
Dim FSO, WSH, TCS, Mess, LinkFile, Clipboard, LNK
Set FSO  = CreateObject("Scripting.FileSystemObject")
Set WSH  = CreateObject("WScript.Shell")
Set TCS  = CreateObject("TCScript.Helper")

'Задаем массив сообщений
MessDefine
'Проверяем параметры
CheckParams

Set LNK = WSH.CreateShortcut(LinkFile)

Clipboard = "TOTALCMD#BAR#DATA"       & vbNewLine &_
            LNK.TargetPath            & vbNewLine &_
            LNK.Arguments             & vbNewLine
If Left(LNK.IconLocation, 1) = "," Then Clipboard = Clipboard & LNK.TargetPath
Clipboard = Clipboard                             &_
            LNK.IconLocation          & vbNewLine &_ 
            FSO.GetBaseName(LinkFile) & vbNewLine &_
            LNK.WorkingDirectory      & vbNewLine
Select Case LNK.WindowStyle
  Case 3    Clipboard = Clipboard & -1
  Case 7    Clipboard = Clipboard & 1
  Case Else Clipboard = Clipboard & ""
End Select
Clipboard = Clipboard & vbNewLine & "-1"

TCS.SetTextToClip(Clipboard)

'Выход
Quit

'===== Процедуры и функции ====================================================
'Проверка входных параметров
Sub CheckParams
  With WScript
    If .Arguments.Count = 0 Then
      MsgBox Mess(1), vbCritical + vbOKOnly, Mess(0)
      Quit
    End If
    LinkFile = .Arguments(0)
  End With
  If Not FSO.FileExists(LinkFile) Then
    MsgBox Mess(2), vbCritical + vbOKOnly, Mess(0)
    Quit
  End If
End Sub

'Описание сообщений
Sub MessDefine
  Set Mess = CreateObject("Scripting.Dictionary")
  With Mess
    .Add 0,  "Копирование кнопки TC"
    .Add 1,  "Не указано имя файла ярлыка!"
    .Add 2,  "Указанный ярлык не существует!"
  End With
End Sub

'Выход
Sub Quit
  Set Mess = Nothing
  Set TCS  = Nothing
  Set WSH  = Nothing
  Set FSO  = Nothing
  WScript.Quit
End Sub
Далее правим реестр (создаем reg-файл, который потом запускаем):
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lnkfile\shell]
@="Open"

[HKEY_CLASSES_ROOT\lnkfile\shell\Copy TC Button]
@="Copy as TC Button"

[HKEY_CLASSES_ROOT\lnkfile\shell\Copy TC Button\Command]
@="\"C:\\Windows\\System32\\wscript.exe\" \"C:\\TotalCmd\\Utils\\WHS\\CopyTCButton.vbs\" \"%1\" "
Здесь:
красным - название пункта контектсного меню,
синим - ваш путь к файлам ОС,
зеленым - ваш путь к вышеприведенному скрипту.
Примечение - при создании reg-файла все пути должны быть с двумя слэшами, как в указанном примере.

В итоге для ярлыков создался пункт контекстного меню, при исполнении которого в буфер вносится код кнопки. И теперь достаточно на любой панели TC выполнить "Вставить", чтобы создалась кнопка, аналогичная ярлыку.

Добавлено: Ср мар 25, 2009 11:06
Вахмурка

Добавлено: Ср мар 25, 2009 12:37
Batya
Вахмурка
Видимо, меня не совсем правильно поняли.
Из твоих скриптов это аналог Shortcut2Button.
Основное отличие применения - я предлагаю сделать пункт меню по правой кнопке мыши на ярлыке.
Т.о. на любом ярлыке (например, на Рабочем столе или в Главном меню по кнопке Пуск) нажимаем правую кнопку мыши, выбираем "Copy as TC Button" и получаем образ кнопки в буфере.
Очень удобно после установки какой-либо программы в пару кликов мыши сделать кнопку в TC, аналогичную ярлыку на Рабочем столе.

Добавлено: Ср мар 25, 2009 12:40
Вахмурка
Почему же, я тебя правильно понял, потому что у тебя все понятно написано.
Мой пост можно снабдить подзагловком "Кстати, еще о ярлыках и кнопках ТС...".