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 

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

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: 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 выполнить "Вставить", чтобы создалась кнопка, аналогичная ярлыку.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Wed Mar 25, 2009 12:06    Post subject: Reply with quote

http://powerpro.wincmd.ru/Scripts/ConvertShortcuts.htm
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Wed Mar 25, 2009 13:37    Post subject: Reply with quote

Вахмурка
Видимо, меня не совсем правильно поняли.
Из твоих скриптов это аналог Shortcut2Button.
Основное отличие применения - я предлагаю сделать пункт меню по правой кнопке мыши на ярлыке.
Т.о. на любом ярлыке (например, на Рабочем столе или в Главном меню по кнопке Пуск) нажимаем правую кнопку мыши, выбираем "Copy as TC Button" и получаем образ кнопки в буфере.
Очень удобно после установки какой-либо программы в пару кликов мыши сделать кнопку в TC, аналогичную ярлыку на Рабочем столе.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Wed Mar 25, 2009 13:40    Post subject: Reply with quote

Почему же, я тебя правильно понял, потому что у тебя все понятно написано.
Мой пост можно снабдить подзагловком "Кстати, еще о ярлыках и кнопках ТС...".
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group