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: Создание кнопки TC по ярлыку 
Author Message
Batya



PostPosted: Tue Mar 24, 2009 19:50    Post subject: Создание кнопки TC по ярлыку Reply with quote

Представляю вариант создания кнопки для TC через контекстное меню ярлыков.

Создаем CopyTCButton.vbs:
Code:
'============================================================================
' Через контекстное меню для ярлыка копируется в буфер кнопка 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-файл, который потом запускаем):
Quote:
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 выполнить "Вставить", чтобы создалась кнопка, аналогичная ярлыку.
_________________
Нет, я не сплю. Я просто медленно моргаю.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group