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 

Single Post  Topic: Autorun 
Author Message
Orion9



PostPosted: Thu Jan 16, 2025 00:08    Post subject: Reply with quote

AkulaBig, я понял.

Просто я почувствовал то же самое, что, вероятно, чувствовали и вы: не смог до конца понять, что мне нужно, и внятно сформулировать задачу Laughing Причину этого описал выше - склеенная панель несет больше проблем, чем пользы. Малейший рассинхрон - и можно окончательно запутаться в трех соснах трех панелях: главной, вспомогательной и объединенной. Что самое плохое - склеенную панель уже не так просто разобрать на части, как ее собрать.

Но может быть для вашей задачи это и не нужно? Может быть, вам просто достаточно сделать две одинаковые главные панели и переключаться между ними по кругу: одна - официальная, другая - черновая. На вторую вы и будете докидывать кнопки, которые используются только для вашей работы, а первая будет оставаться в нетронутом виде. И алгоритм от этого будет гораздо проще, а значит и круче ))

Переключение по кругу между тремя панелями:
Code:
# Alt+F1
SetHotkeyAction /K:A /H:F1 MainBarCycle

Func MainBarCycle()
   Static j = -1, aBarName = List("Main","Help", "Vertical")
   j += 1
   j = (j > aBarName.Count - 1 ? 0 : j)
   bar = "%COMMANDER_PATH%\Bars\" & aBarName[j] & ".bar"         
   IniWrite /R %COMMANDER_INI% "Buttonbar" "Buttonbar" %bar%
   SendMessage(AUTORUN_TCHANDLE, 11, 0, 0)
   SendCommand 2901
   SendCommand 2901
   sleep(50)
   SendMessage(AUTORUN_TCHANDLE, 11, 1, 0)
   WinRedraw(1)
   ShowHint("Включена: " & aBarName[j] & ".bar")
   Sleep(800)
   WinSetState(23)
EndFunc

Если не нужно запоминать панель в wincmd.ini и посылать cm_VisButtonBar для обновления изменений в окне ТС, то можно просто загружать ее командой OPENBAR, как это сделано постом выше, т.е CommandExec("em_open_bar", aBarName[j] & ".bar")
Code:
[em_open_bar]
cmd=OPENBAR
param=%|COMMANDER_PATH|\Bars\%A0

Но тогда при выходе, главная панель будет оставаться одной и той же.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group