+TCASwitcher. Exe-шник тут - это склейка того самого "языка" со скриптом. Вот ты как минимум уже 2 комплекта и носишь.ask-rus писал(а):Скомпилированные использую, например, TC Multi Comment Edit ... Носить с собой целый скриптовый язык не хочется.
Кнопка вкл\выкл "внутренние ассоциации"
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
[offtop]
В целях ликбеза:
[/offtop]
В целях ликбеза:
2 или 4 байта.mf-zl писал(а):Unicode - один символ = 2 байта
Нет, только от 1 до 4 байтов. 6 байтов — это результат работы кривых программ, неправильно транслирующих суррогатные пары UTF-16 — поэлементно, а не как единый символ.mf-zl писал(а):Utf-8 - один символ от 1 до 6 байтов
[/offtop]
Почему же, ё-моё, ты нигде не пишешь "ё"?
mf-zl, LonerD
У вас после вызова и подтверждения в окне в низу файла появляются строки [Associations] и [-Associations]?
Желательно проверить с редиректом и без.
У вас после вызова и подтверждения в окне в низу файла появляются строки [Associations] и [-Associations]?
Желательно проверить с редиректом и без.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher, Всё так.
Проверка на редирект и работа с соответствующим INI:
[Associations] и [-Associations]:
Проверка на редирект и работа с соответствующим INI:
Код: Выделить всё
IniRead, RedirectAssociations, % COMMANDER_INI, Associations, RedirectSection, 0
Transform, INI, Deref, % (RedirectAssociations ? RedirectAssociations : COMMANDER_INI)
IniRead, Associations, % INI, Associations
Код: Выделить всё
("" : "-") "Associations"mf-zl
Не нравится мне этот косяк ТС. Получается, надо ещё после окна дополнительно ini переписывать..
А саму секцию он тоже вниз кидает?
Не нравится мне этот косяк ТС. Получается, надо ещё после окна дополнительно ini переписывать..
А саму секцию он тоже вниз кидает?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ничего не надо удалять. Не понимаю о чём ты вообще!Удалять эти строки из ini.
У меня когда ассоциации
включены: [Associations]
выключены: [-Associations] с данными из [Associations]
Ты о моём скрипте вообще говоришь?
Я пишу про появление указанных строк. Ты это подтвердил. Теперь пишешь, что ничего удалять не надо. Я уже тоже тебя не пойму..
Дело не в скриптах, дело в ТС.
Ещё раз вопрос: ТС добавляет одну из указанных строк после изменения секции ассоциаций и подтверждения в диалоге в конец ini-файла?
Дело не в скриптах, дело в ТС.
Ещё раз вопрос: ТС добавляет одну из указанных строк после изменения секции ассоциаций и подтверждения в диалоге в конец ini-файла?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher, при отключении ассоциаций в конце файла создаётся секция [-Associations] в которую переносятся данные из [Associations], после чего удаляется [Associations].
Если после этого в тотале запустить cm_InternalAssociate и нажать Ок в конце ini создастся пустая секция [Associations] и, если ничего не добавлять в нее, повторный запуск скрипта перенесёт данные из заполненной [-Associations] в [Associations] и удалит [-Associations].
Если после этого в тотале запустить cm_InternalAssociate и нажать Ок в конце ini создастся пустая секция [Associations] и, если ничего не добавлять в нее, повторный запуск скрипта перенесёт данные из заполненной [-Associations] в [Associations] и удалит [-Associations].
Ну вот, а говорилmf-zl писал(а):и удалит [-Associations]
Подтвердилось таки.mf-zl писал(а):Ничего не надо удалять
Тогда я тоже переписываю:
Код: Выделить всё
'===========================================================
' Вкл\выкл внутренние ассоциации в TC
'======================= Путь к ТСFS2 ======================
TCFS2 = """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"""
'===========================================================
Dim WSH : Set WSH = CreateObject("WScript.Shell")
'============= Путь к ini с секцией ассоциаций =============
INI = "%COMMANDER_PATH%\RedirectINI\Associations.ini"
'INI = "%COMMANDER_INI%"
'===========================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
INI = WSH.ExpandEnvironmentStrings(INI)
Text = FSO.OpenTextFile(INI,1,,-2).ReadAll
Find1 = InStr(Text, "[Associations]") : Find2 = InStr(Text, "[-Associations]")
If Find1 Then
Text = Left(Text, Find1) & "-" & Mid(Text, Find1 + 1)
ElseIf Find2 Then Text = Left(Text, Find2) & Mid(Text, Find2 + 2) : End If
If Find1 Or Find2 Then
Set OINI = FSO.OpenTextFile(INI,2,,-2)
OINI.Write Text : OINI.Close
WSH.Run TCFS2 & "/ef ""tcm(519,1) delay(40) send({ENTER},findwnd(`TDlgCustomColors`))""", 0 , True
Set OINI = FSO.OpenTextFile(INI,2,,-2)
OINI.Write Text : OINI.Close
End If : Set WSH = Nothing : WScript.QuitАвтору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Переписал скрипт. На небольших конфигах переключает ассоциации без перезапуска. Для конфигов с секцией associations более 64кб предлагает перезапуск. Прогнал на конфиге 100кб с редиректом и без. Тестируем!
Код: Выделить всё
#NoTrayIcon
#SingleInstance off
SetBatchLines, -1
SetKeyDelay, -1
SetWinDelay, -1
IniRead, RedirectAssociations, % COMMANDER_INI, Associations, RedirectSection, 0
Transform, INI, Deref, % (RedirectAssociations ? RedirectAssociations : COMMANDER_INI)
IniRead, Associations, % INI, Associations
FileRead, INIc, % INI
StringReplace, INIc, INIc, % "[" (StrLen(Associations) ? "" : "-") "Associations]", % "[" (StrLen(Associations) ? "-" : "") "Associations]"
FileDelete, % INI
FileAppend, % INIc, % INI
IniRead, Associations, % INI, Associations
If StrLen(Associations) < 65531
{ PostMessage, 1075, 519, 0,, ahk_class TTOTAL_CMD
WinWait, ahk_class TDlgCustomColors,, 3
If !ErrorLevel
ControlClick, TButton2,,,, 2
} Else
{ MsgBox, 8244, Total Commander, Associations section reached 64Kb limit!`nCannot continue without restarting Total Commander.`n`nRestart now?
IfMsgBox, Yes
TC_Restart()
}
TC_Restart() {
If WinExist("ahk_class TTOTAL_CMD")
{ WinGet, PID, PID
ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process where ProcessId=" . PID)._NewEnum()[Process]
PostMessage, 1075, 24340, 0,, % t := "ahk_class TTOTAL_CMD ahk_pid " PID
WinWait, % c := "Total Commander ahk_class #32770 ahk_pid " PID, ?, 1.5
If !ErrorLevel
WinWaitClose, % c
WinWaitClose, % t,, 1.5
If ErrorLevel
MsgBox, 8244, Total Commander, Restart cancelled!
Else
Run, % Process.CommandLine
}
}
апну тему вдруг спустя 10 лет кому-то до сих пор не нравится жать кнопки скриптом... вариант без вызова диалога и нажатия кнопок:
первое сообщение провоцирует перечитывание секции Associations
второе сообщение обновляет кэш иконок типов файлов
Код: Выделить всё
TCFS2.exe /ef msg(147,0,1302100) msg(1045,0,0)
второе сообщение обновляет кэш иконок типов файлов