Вариант с
Openbar как-то сам напрашивался, но в голову почему-то раньше не приходил, хотя лично мне для данной ситуации не нужен, я из меню вызываю команду. Но в другом месте пригодится. Спасибо за логичную находку.
Доб.: Не, не пригодилось - оказалось, что влияет только на содержимое тулбара, а не размер иконок...
HA3APET писал(а):А хелпер регистрируется по нажатию на туже кнопку вкл\выкл вн ассоц, через TCMC
Зачем регистрировать Хелпер, если можно просто через TCMC вызывать нужные команды? Советую использовать алгоритм
скрипта Batya, чтобы свести дело к полной портабельности.
Кстати, я совершенно не вижу смысла в применении
GetAbsolutePathName. Достаточно оставить
CreateObject("WScript.Shell").ExpandEnvironmentStrings(Fn)
Для себя я сделал бескнопочный вариант с TCFS2:
Код: Выделить всё
' Вкл\выкл внутренние ассоциации в TC
'==================================
Dim WSH
Set WSH = CreateObject("WScript.Shell")
Str1 = "[-Associations]"
Str2 = "[Associations]"
INI = WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%\Wincmd.ini")
Text = CreateObject("Scripting.FileSystemObject").OpenTextFile(INI, 1).ReadAll
If InStr(1, Text, Str1, 1) > 0 Then
Text = Replace(Text, Str1, Str2, 1, 1, 1)
Else
Text = Replace(Text, Str2, Str1, 1, 1, 1)
End If
With CreateObject("Scripting.FileSystemObject")
.OpenTextFile(INI, 2).Write Text
.OpenTextFile(INI, 1).Close
End With
WSH.Exec("%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef tcm(519)")
WScript.Sleep 10
WSH.SendKeys "~"
Set WSH = Nothing
WScript.Quit
+ Окно мелькает очень быстро.