Кнопка вкл\выкл "внутренние ассоциации"
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3 ... , 9, 10, 11  Next  :| |:
Total Commander -> Автоматизация Total Commander

#136:  Author: FlasherLocation: Москва PostPosted: Tue Apr 30, 2013 00:32
    —
ask-rus wrote:
Скомпилированные использую, например, TC Multi Comment Edit ... Носить с собой целый скриптовый язык не хочется.
+TCASwitcher. Exe-шник тут - это склейка того самого "языка" со скриптом. Вот ты как минимум уже 2 комплекта и носишь.

#137:  Author: LonerDLocation: Донецк PostPosted: Tue Apr 30, 2013 01:27
    —
ask-rus wrote:
Скомпилированные использую

Ну раз "скомпилированные" варианты (точнее скрипт склеенный с интерпретатором) признаёшь кошерными - то с тем же успехом, можно и AutoHotkey "скомпилировать". Smile

#138:  Author: ask-rusLocation: Russian Federation PostPosted: Tue Apr 30, 2013 08:30
    —
Сомневаюсь, что придёт момент (задача), когда без AHK прям никуда, оффтоп.

#139:  Author: CaptainFlintLocation: Москва PostPosted: Tue Apr 30, 2013 14:13
    —
[offtop]
В целях ликбеза:
mf-zl wrote:
Unicode - один символ = 2 байта
2 или 4 байта.
mf-zl wrote:
Utf-8 - один символ от 1 до 6 байтов
Нет, только от 1 до 4 байтов. 6 байтов — это результат работы кривых программ, неправильно транслирующих суррогатные пары UTF-16 — поэлементно, а не как единый символ.
[/offtop]

#140:  Author: FlasherLocation: Москва PostPosted: Fri May 03, 2013 18:05
    —
mf-zl, LonerD
У вас после вызова и подтверждения в окне в низу файла появляются строки [Associations] и [-Associations]?
Желательно проверить с редиректом и без.

#141:  Author: mf-zlLocation: BLR PostPosted: Fri May 03, 2013 18:19
    —
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"

#142:  Author: FlasherLocation: Москва PostPosted: Fri May 03, 2013 18:24
    —
mf-zl
Не нравится мне этот косяк ТС. Получается, надо ещё после окна дополнительно ini переписывать..

А саму секцию он тоже вниз кидает?

#143:  Author: mf-zlLocation: BLR PostPosted: Fri May 03, 2013 18:28
    —
Flasher wrote:
Получается, надо ещё после окна дополнительно ini переписывать..

не воткнул - что и куда переписывать?

#144:  Author: FlasherLocation: Москва PostPosted: Fri May 03, 2013 18:29
    —
mf-zl wrote:
не воткнул - что и куда переписывать?
Удалять эти строки из ini.

#145:  Author: mf-zlLocation: BLR PostPosted: Fri May 03, 2013 18:34
    —
Quote:
Удалять эти строки из ini.

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

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

Ты о моём скрипте вообще говоришь?

#146:  Author: FlasherLocation: Москва PostPosted: Fri May 03, 2013 18:43
    —
Я пишу про появление указанных строк. Ты это подтвердил. Теперь пишешь, что ничего удалять не надо. Я уже тоже тебя не пойму..
Дело не в скриптах, дело в ТС.
Ещё раз вопрос: ТС добавляет одну из указанных строк после изменения секции ассоциаций и подтверждения в диалоге в конец ini-файла?

#147:  Author: mf-zlLocation: BLR PostPosted: Fri May 03, 2013 19:33
    —
Flasher, при отключении ассоциаций в конце файла создаётся секция [-Associations] в которую переносятся данные из [Associations], после чего удаляется [Associations].
Если после этого в тотале запустить cm_InternalAssociate и нажать Ок в конце ini создастся пустая секция [Associations] и, если ничего не добавлять в нее, повторный запуск скрипта перенесёт данные из заполненной [-Associations] в [Associations] и удалит [-Associations].

#148:  Author: FlasherLocation: Москва PostPosted: Fri May 03, 2013 19:38
    —
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

#149:  Author: mf-zlLocation: BLR PostPosted: Mon May 06, 2013 10:14
    —
Переписал скрипт. На небольших конфигах переключает ассоциации без перезапуска. Для конфигов с секцией 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
  }
}

#150:  Author: lz57005 PostPosted: Fri Apr 23, 2021 15:05
    —
апну тему вдруг спустя 10 лет кому-то до сих пор не нравится жать кнопки скриптом... вариант без вызова диалога и нажатия кнопок:

Code:

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


первое сообщение провоцирует перечитывание секции Associations
второе сообщение обновляет кэш иконок типов файлов



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3 ... , 9, 10, 11  Next  :| |:
Page 10 of 11

Powered by phpBB © 2001, 2005 phpBB Group