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 

Кнопка вкл\выкл "внутренние ассоциации"
Goto page Previous  1, 2, 3 ... , 9, 10, 11  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Apr 30, 2013 00:32    Post subject: Reply with quote

ask-rus wrote:
Скомпилированные использую, например, TC Multi Comment Edit ... Носить с собой целый скриптовый язык не хочется.
+TCASwitcher. Exe-шник тут - это склейка того самого "языка" со скриптом. Вот ты как минимум уже 2 комплекта и носишь.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Tue Apr 30, 2013 01:27    Post subject: Reply with quote

ask-rus wrote:
Скомпилированные использую

Ну раз "скомпилированные" варианты (точнее скрипт склеенный с интерпретатором) признаёшь кошерными - то с тем же успехом, можно и AutoHotkey "скомпилировать". Smile
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Tue Apr 30, 2013 08:30    Post subject: Reply with quote

Сомневаюсь, что придёт момент (задача), когда без AHK прям никуда, оффтоп.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Tue Apr 30, 2013 14:13    Post subject: Reply with quote

[offtop]
В целях ликбеза:
mf-zl wrote:
Unicode - один символ = 2 байта
2 или 4 байта.
mf-zl wrote:
Utf-8 - один символ от 1 до 6 байтов
Нет, только от 1 до 4 байтов. 6 байтов — это результат работы кривых программ, неправильно транслирующих суррогатные пары UTF-16 — поэлементно, а не как единый символ.
[/offtop]
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri May 03, 2013 18:05    Post subject: Reply with quote

mf-zl, LonerD
У вас после вызова и подтверждения в окне в низу файла появляются строки [Associations] и [-Associations]?
Желательно проверить с редиректом и без.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Fri May 03, 2013 18:19    Post subject: Reply with quote

Flasher, Всё так.

Проверка на редирект и работа с соответствующим INI:
Code:
 IniRead, RedirectAssociations, % COMMANDER_INI, Associations, RedirectSection, 0
 Transform, INI, Deref, % (RedirectAssociations ? RedirectAssociations : COMMANDER_INI)
 IniRead, Associations, % INI, Associations


[Associations] и [-Associations]:
Code:
("" : "-") "Associations"
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri May 03, 2013 18:24    Post subject: Reply with quote

mf-zl
Не нравится мне этот косяк ТС. Получается, надо ещё после окна дополнительно ini переписывать..

А саму секцию он тоже вниз кидает?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Fri May 03, 2013 18:28    Post subject: Reply with quote

Flasher wrote:
Получается, надо ещё после окна дополнительно ini переписывать..

не воткнул - что и куда переписывать?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri May 03, 2013 18:29    Post subject: Reply with quote

mf-zl wrote:
не воткнул - что и куда переписывать?
Удалять эти строки из ini.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Fri May 03, 2013 18:34    Post subject: Reply with quote

Quote:
Удалять эти строки из ini.

Ничего не надо удалять. Не понимаю о чём ты вообще!

У меня когда ассоциации
включены: [Associations]
выключены: [-Associations] с данными из [Associations]

Ты о моём скрипте вообще говоришь?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri May 03, 2013 18:43    Post subject: Reply with quote

Я пишу про появление указанных строк. Ты это подтвердил. Теперь пишешь, что ничего удалять не надо. Я уже тоже тебя не пойму..
Дело не в скриптах, дело в ТС.
Ещё раз вопрос: ТС добавляет одну из указанных строк после изменения секции ассоциаций и подтверждения в диалоге в конец ini-файла?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Fri May 03, 2013 19:33    Post subject: Reply with quote

Flasher, при отключении ассоциаций в конце файла создаётся секция [-Associations] в которую переносятся данные из [Associations], после чего удаляется [Associations].
Если после этого в тотале запустить cm_InternalAssociate и нажать Ок в конце ini создастся пустая секция [Associations] и, если ничего не добавлять в нее, повторный запуск скрипта перенесёт данные из заполненной [-Associations] в [Associations] и удалит [-Associations].
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri May 03, 2013 19:38    Post subject: Reply with quote

mf-zl wrote:
и удалит [-Associations]
Ну вот, а говорил
mf-zl wrote:
Ничего не надо удалять
Подтвердилось таки.

Тогда я тоже переписываю:
Code:
'===========================================================
' Вкл\выкл внутренние ассоциации в 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) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Mon May 06, 2013 10:14    Post subject: Reply with quote

Переписал скрипт. На небольших конфигах переключает ассоциации без перезапуска. Для конфигов с секцией associations более 64кб предлагает перезапуск. Прогнал на конфиге 100кб с редиректом и без. Тестируем!

Code:
#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
  }
}
Back to top
View user's profile Send private message
lz57005



Joined: 05 Mar 2020
Posts: 26

Post (Separately) Posted: Fri Apr 23, 2021 15:05    Post subject: Reply with quote

апну тему вдруг спустя 10 лет кому-то до сих пор не нравится жать кнопки скриптом... вариант без вызова диалога и нажатия кнопок:

Code:

TCFS2.exe /ef msg(147,0,1302100) msg(1045,0,0)


первое сообщение провоцирует перечитывание секции Associations
второе сообщение обновляет кэш иконок типов файлов
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
Goto page Previous  1, 2, 3 ... , 9, 10, 11  Next
Page 10 of 11

 
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