| View previous topic :: View next topic |
| Author |
Message |
FallenAngel
Joined: 30 Dec 2025 Posts: 6
|
(Separately) Posted: Tue Dec 30, 2025 21:04 Post subject: |
|
|
Orion9
Нужна помощь с такой конструкцией.
| Code: |
ControlSetMouseAction /M 1 OpenDirInNewTabElseEnter
ControlSetMouseAction /M 2 OpenDirInNewTabElseEnter
Func OpenDirInNewTabElseEnter
I = ItemAtCursor('index')
If I >= 0 Then
F = RequestInfo(1010 + ItemAtCursor('panel'))
If ItemAtCursor('panel') <> RequestInfo(1000) Or Not ItemAtCursor('focused') Then MouseClick
If ItemAtCursor('focused') Then
If F > I Or F = -1 Then
SendCommand 3003
Else
Switch StrLower(StrRight(StrPart(ItemAtCursor('text'), auTAB, 1), 4))
Case '.exe', '.bat', '.cmd', '.lnk'
CommandExec em_startelevated
Case '.ps1'
ShowPopupMenu /I:16 '%commander_path%\PS.BAR'
Else
SendCommand cm_SrcQuickView
EndSwitch
EndIf
EndIf
Else
SendCommand cm_SrcHideQuickView
EndIf
EndFunc |
Идея состоит в том, чтобы унифицировать подход. По СКМ должен всегда открываться Быстрый просмотр. А вот все частные случаи (новая вкладка, '.exe', '.bat', '.cmd', '.lnk' и '.ps1') только с удержание Shift.
Заранее спасибо. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 977
|
(Separately) Posted: Tue Dec 30, 2025 23:54 Post subject: |
|
|
FallenAngel
Если требуется сохранить старый код, т.е. обойтись минимальным вмешательством, то можно "перевесить" ControlSetMouseAction на Shift, добавив ключ /K:S, а просто СКМ оставить под новую ControlSetMouseAction с командой быстрого просмотра:
| Code: | ControlSetMouseAction /M 1 SendCommand cm_SrcQuickView
ControlSetMouseAction /M 2 SendCommand cm_SrcQuickView
ControlSetMouseAction /K:S /M 1 OpenDirInNewTabElseEnter
ControlSetMouseAction /K:S /M 2 OpenDirInNewTabElseEnter
Func OpenDirInNewTabElseEnter
I = ItemAtCursor('index')
If I >= 0 Then
F = RequestInfo(1010 + ItemAtCursor('panel'))
If ItemAtCursor('panel') <> RequestInfo(1000) Or Not ItemAtCursor('focused') Then MouseClick
If ItemAtCursor('focused') Then
If F > I Or F = -1 Then
SendCommand 3003
Else
Switch StrLower(StrRight(StrPart(ItemAtCursor('text'), auTAB, 1), 4))
Case '.exe', '.bat', '.cmd', '.lnk'
CommandExec em_startelevated
Case '.ps1'
ShowPopupMenu /I:16 '%commander_path%\PS.BAR'
Else
SendCommand cm_SrcQuickView
EndSwitch
EndIf
EndIf
Else
SendCommand cm_SrcHideQuickView
EndIf
EndFunc |
Подойдет вам такой вариант? |
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 6
|
(Separately) Posted: Wed Dec 31, 2025 11:52 Post subject: |
|
|
| Orion9 wrote: |
Если требуется сохранить старый код, т.е. обойтись минимальным вмешательством, |
Это не обязательно.
| Orion9 wrote: |
Подойдет вам такой вариант? |
Нет, т.к. поведение было лучше - клик по пустому пространству всегда делал cm_SrcHideQuickView
+ клик по файлу сразу выводил его содержимое в Быстром просмотре, а не просто переключал этот самый просмотр. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 977
|
(Separately) Posted: Wed Dec 31, 2025 12:42 Post subject: |
|
|
FallenAngel
У меня вчера не было возможности проверить, но я догадался, что вас вряд ли устроит такой вариант.
А если так попробовать?
| Code: | ControlSetMouseAction /M 1 OpenDirInNewTabElseEnter
ControlSetMouseAction /M 2 OpenDirInNewTabElseEnter
ControlSetMouseAction /K:S /M 1 OpenDirInNewTabElseEnter
ControlSetMouseAction /K:S /M 2 OpenDirInNewTabElseEnter
Func OpenDirInNewTabElseEnter
Local bShift = IsPressed(0x10)
I = ItemAtCursor('index')
If I >= 0 Then
F = RequestInfo(1010 + ItemAtCursor('panel'))
If ItemAtCursor('panel') <> RequestInfo(1000) Or Not ItemAtCursor('focused') Then MouseClick
If ItemAtCursor('focused') Then
# проверка Shift
If Not bShift Then
SendCommand cm_SrcQuickView
Return
EndIf
If F > I Or F = -1 Then
SendCommand 3003
Else
Switch StrLower(StrRight(StrPart(ItemAtCursor('text'), auTAB, 1), 4))
Case '.exe', '.bat', '.cmd', '.lnk'
CommandExec em_startelevated
Case '.ps1'
ShowPopupMenu /I:16 '%commander_path%\PS.BAR'
Else
SendCommand cm_SrcQuickView
EndSwitch
EndIf
EndIf
Else
SendCommand cm_SrcHideQuickView
EndIf
EndFunc |
|
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 6
|
(Separately) Posted: Wed Dec 31, 2025 13:16 Post subject: |
|
|
Orion9
Да, спасибо. Это уже почти то, что я хотел. Правда, по ходу обнаружилось что с shift\ctrl заодно проходит выделение, а с alt - закрывается вызванное меню. Буду думать, по поводу модификатора еще.
Может Вы можете подсказать что? пкм+скм?
Если можно, еще пара вопросов.
В справке, в разделе Разное есть пример "Сохранение исходного заголовка". Это как я понял, нужно для правильного вывода строки WinSetText(g_sTitle & " | CPU: " & GetCPUUsage()) в заголовке ТС.
Вопрос в следующем - нужно чтобы по shift+клик по заголовку эта самая строка WinSetText... скрывалась и отображалась соотв. А самое главное, это состояние нужно сохранять после перезапука ТС. В идеале в wincmd.ini - вроде:
| Code: | [Configuration]
ClockTC=1 |
И у меня предложение по поводу "на чём тогда 11,000 строк написано" и Вашей сборки с примерами.
Я честно её скачал и постарался разобраться в примерах, но выглядело это как тот мем про опоссума.
Можем Вам оформлять все отдельными .aucfg файлами? Тогда всем будет ясно, что это и зачем. Можно будет быстро подключить готовое решение и использовать у себя.
Яркий пример в справке - есть "Добавление каталога в PATH". Просто и понятно. Сохранил в AddToUserPath.aucfg и спокойно себе юзаешь 65001. Ну или "Сворачивание в область уведомлений". Т.е. это все готовые законченные решения.
А прям в идеале - выгружать на github. Тогда можно и по взрослому открывать issues по каждому решению. Так же, это еще один способ коммуникации. Для понимания, я зарегистрировался на форуме исключительно чтобы пообщаться с Вами  |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 977
|
(Separately) Posted: Wed Dec 31, 2025 13:55 Post subject: |
|
|
| FallenAngel wrote: | | нужно чтобы по shift+клик по заголовку эта самая строка WinSetText... скрывалась и отображалась соотв. А самое главное, это состояние нужно сохранять после перезапука ТС |
Кажется, что-то подобное есть в сборке AkulaBig, он немного по-другому делал, по-своему. Можете глянуть, вруг это больше вам подойдет или вдруг проще станет разобраться.
| FallenAngel wrote: | | Можем Вам оформлять все отдельными .aucfg файлами? Тогда всем будет ясно, что это и зачем. Можно будет быстро подключить готовое решение и использовать у себя. |
Я так и старался в последнее время делать, помодульно. То есть чтобы можно было просто модуль взять и подключить инструкцией Pragma и не сильно заморачиваться со всем остальным.
Но такой подход требует переработки кода, причем тщательной, а самое главное — написание хорошей документации, которая будет раскрывать функции модуля. И вот это как раз самое сложное.
Написание документации — совершенно не моё. Если бы вы знали сколько у меня времени ушло на написание readme к заголовку, то долго бы смеялись, да я и сам смеюсь, когда вспоминаю Чтобы делать это легко и непринужденно, нужны специальные таланты и умения, и это факт. Почему, вы думаете, справка к Autorun так легко читается? Благодаря Flasher и его умениям, прежде всего. Ну и Loopback, разумеется. К сожалению, у меня таких талантов нет, поэтому и времени на написание даже простых и небольших инструкций (к тому же корявых как правило) отъедается изрядно.
И всё же я посмотрю, что можно сделать. Пока не знаю, как у меня будет со временем в новом году, но несколько самых нужных и интересных фич действительно нужно документировать и вынести в отдельные модули для более простого и широкого использования.
Кстати, всех с наступающими! Будем надеятся Loopback появится в новом году, и не с пустыми руками, а с большими подарками ) |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 466
|
(Separately) Posted: Wed Dec 31, 2025 14:53 Post subject: |
|
|
| Orion9 wrote: | | Написание документации — совершенно не моё. |
И вот этот человек можно сказать заставил меня написать комменты ко всем моим функциям. Это подстава
| Orion9 wrote: | | Кстати, всех с наступающими! |
И вас с наступающим!!! |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 977
|
(Separately) Posted: Thu Jan 01, 2026 13:47 Post subject: |
|
|
FallenAngel
А что из функционала собранных скриптов вас заинтересовало больше всего, на что стоит обратить внимание в первую очередь?
Там ведь половина - это чисто "проба пера", которая представляет ценность разве что с технической точки зрения. Я имею в виду, простому пользователю разобраться с этим будет непросто, да и вряд ли вообще будет интересно без соответсвующих знаний в области программирования и скриптинга.
Какие-то фичи взять, конечно, можно, и даже практически безболезненно, т.е. простым копированием кнопок и кода, но далеко не все. Многое уж слишком завязано и переплетено с другими частями и модулями, и это, конечно, мешает.
Например, одной из таких фич является кнопка разворачивания и сворачивания панели. Я настолько к ней привык, что даже не могу сейчас представить себе работу в ТС без нее.
| Code: | В скрипте Title.aucfg реализован код кнопки, переключающей количество строк на главной панели инструментов (кнопка меняет значение BarLimitLines в Wincmd.ini).
Первое нажатие на кнопку разворачивает панель (BarLimitLines=0). Через 10 секунд панель снова свернется (BarLimitLines=1). Чтобы панель оставалась в развернутом виде, необходимо повторно нажать на кнопку в течении 10 секунд. Развернутая панель возвращается в исходное состояние нажатием на кнопку в третий раз. |
Однако код кнопки сильно завязан на основной цикл заголовка. Выдернуть его оттуда непросто. Я давно хотел сделать отдельную функцию на эту кнопку, но все забывал. Однако вы мне напомнили.
 Hidden text | Code: | Global gBarLinesTimer = false
RegisterCommand 60040 "ToggleBarLines"
SetHotkeyAction /K:C /H:F12 "ToggleBarLines"
Func ToggleBarLines()
# окно имеет прозрачность
Local bWinTrans = WinHasStyle(0x80000, 1, AUTORUN_TCHANDLE)
Local nLines
# чтение ключа
IniRead /R nLines %COMMANDER_INI% "Buttonbar" "BarLimitLines" 1
# панель развернута с запущенным таймером
If nLines = 0 And gBarLinesTimer Then
gBarLinesTimer = false
Sleep(50)
Return
EndIf
# переключение ключа
If nLines = 1 Then
IniWrite /R %COMMANDER_INI% "Buttonbar" "BarLimitLines" 0
Else
IniWrite /R %COMMANDER_INI% "Buttonbar" "BarLimitLines" 1
Endif
# запрет перерисовки окна
If Not bWinTrans Then SendMessage(AUTORUN_TCHANDLE, 11, 0, 0)
# двойная поылка cm_VisButtonBar
SendCommand(2901, 0, 1)
SendCommand(2901, 0, 1)
Sleep(10)
# снятие запрета перерисовки
If Not bWinTrans Then SendMessage(AUTORUN_TCHANDLE, 11, 1, 0)
WinRedraw(2)
# повторное чтение ключа
IniRead /R nLines %COMMANDER_INI% "Buttonbar" "BarLimitLines" 1
# панель свернута
If nLines = 1 Then
gBarLinesTimer = false
Sleep(50)
Return
EndIf
# запуск таймера
RunThread BarLinesTimer
EndFunc
Func BarLinesTimer()
Local nSeconds = 5
gBarLinesTimer = true
For i = 1 To nSeconds
For j = 1 To 20
Sleep(50)
If Not gBarLinesTimer Then Break
Next
If Not gBarLinesTimer Then Break
Next
gBarLinesTimer = false
# таймер был прерван
If i < nSeconds Then Return
# таймер сработал до конца
Local nLines
IniRead /R nLines %COMMANDER_INI% "Buttonbar" "BarLimitLines" 1
If nLines = 0 Then RunThread ToggleBarLines
EndFunc |
Количество секунд можно поменять (сейчас nSeconds = 5), а вызов повесить на другую комбинацию (сейчас CTRL+F12). Или прописать отдельную горячую клавишу через стандартную секцию [Shortcuts].
В целом, как уже писал выше, попробую пересмотреть весь код и адаптировать самые нужные функции для более простого использования. Думаю, начну где-то после всех праздников, если ничего экстренного не навалится.
| AkulaBig wrote: | | И вот этот человек можно сказать заставил меня написать комменты ко всем моим функциям. Это подстава |
Вы хотите как в лучших коммандерах лондОна и парижа, или не хотите?  |
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 6
|
(Separately) Posted: Thu Jan 01, 2026 21:22 Post subject: |
|
|
| Orion9 wrote: | FallenAngel
на что стоит обратить внимание в первую очередь?
|
Как я уже говорил, мне сейчас интересная тема настройки заголовка.
Такое чувство, что каждый "строит" что-то сам себе. Нужен универсальный .aucfg.
Кроме стандартных RAM\CPU нужна и погода, возможно задействовав https://github.com/chubin/wttr.in
И у всего этого должно быть юзер-френдли настройки. Т.е. прям в начале .aucfg глобальными переменными указываем хотим ли сохранять в ini, что хотим видеть и как.
Все. Юзер подключает модуль, настраивает как душе угодно и не вникает в детали. Так должно быть. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 466
|
(Separately) Posted: Fri Jan 02, 2026 14:03 Post subject: |
|
|
| Orion9 wrote: | | Вы хотите как в лучших коммандерах лондОна и парижа, или не хотите? |
Ай, хитрец.
| FallenAngel wrote: | | Так должно быть. |
Если напишите, будет.
| FallenAngel wrote: | | Нужен универсальный .aucfg. |
Можете в моей сборке посмотреть. aucfg отдельно. К нему инишник, в котром можно кое-что настраивать. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 977
|
(Separately) Posted: Fri Jan 02, 2026 14:10 Post subject: |
|
|
| FallenAngel wrote: | | Юзер подключает модуль, настраивает как душе угодно и не вникает в детали. Так должно быть. |
Я согласен, что так должно быть. Но сделать универсальный модуль для работы с заголовком — задача весьма амбициозная. Боюсь, что на такое я уже не решусь.
Дело даже не в объеме кода и времени, которое на это уйдет (оставлю за рамками жизненные обстоятельства, которые тоже изменились не в лучшую в этом плане сторону), а в банальной потере интереса. Увы, это горякая правда.
Представьте альпиниста, который взбирается на гору: пока он движется, у него есть цель, стремление и задача, и он достигает этой цели. Но за красивой вывеской "покорил вершину" стоит лишь снег, пот и кислородное голодание Никакой романтики )
Более того, взойдя на вершину его начинает мучать другой вопрос: "а на кой оно мне вообще было надо?"
Возможно, это пример не отображет всей полноты смысла, поэтому могу привести другой пример.
У султана может быть много жен, много одежд, много золотых чаш и кубков, много красивых лошадей. Но не смотря на такое обилие выбора и роскошь, он проводит время с одной женой — своей любимой женой, носит одну одежду — свою любимую одежду, ест с одной чаши — своей любимой чаши, ездит верхом на одной лошади — своей любимой лошади.
К чему это я?
К тому, что за 1,5 года пользования заголовком я осознал, что большая часть фич там просто не требуется. Заголовок, которым я обычно пользуюсь, выглядит вот так:
| Code: | Total Commander 11.55 - Orion 8 Fri 2 Dune Offline 128 byte 0 byte Memory: 15% CPU: 3% |
Плюс погода по настроению. Но на этом все )
И сделать такой легковесный, ничем не перегруженный заголовок, который будет учитывать только собственные нужды, будет не так сложно, при условии, что есть навыки программирования и скриптописания. В последних версиях Autorun Loopback максимально облегчил для этого жизнь. Поэтому да, каждый строит, и самое главное — может построить что-то себе, как вы выразились.
Ссылка на погоду, которую вы дали, действительно крутая. Извлечь из нее данные будет совсем просто. Вот небольшой пример:
| Code: | RegisterCommand 60041 "WttrDownloadTest"
Func WttrDownloadTest()
Local url = "https://wttr.in/Moscow?format=3"
If WinInetDownloadFile(url, TEMP & "\wttr.txt") = 0 Then
Local txt = FileRead(TEMP & "\wttr.txt")
tip(StrTrim(txt), 1, "Weather")
Else
tip("Не удалось получить данные " & url, 3, "Error")
EndIf
EndFunc |
Добавить полученные данные в заголовок тоже будет несложно. Сделать включение и выключение по Shift+Click тоже вроде не сложно. У вас есть какой-то код? Не видя кода сложно что-то конкретное предложить. |
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 6
|
(Separately) Posted: Fri Jan 02, 2026 16:31 Post subject: |
|
|
| Orion9 wrote: |
У вас есть какой-то код? Не видя кода сложно что-то конкретное предложить. |
| Code: | Title = WinGetText()
RunThread InfoHeader
Func InfoHeader
Local nRecvSpeed, nSendSpeed
While 1
Sleep 1000
GetNetSpeed(nRecvSpeed, nSendSpeed)
WinSetText(Title & ' ' & Date("d MMMM, ddd") & '. CPU: ' & StrFormat("%02d", GetCPUUsage()) & '% RAM: ' & GetMemStats() & '% NET: ↓ ' & Round(nRecvSpeed / 1000, 1) & ' ↑ ' & Round(nSendSpeed / 1000, 1) & ' mb/s')
Wend
EndFunc |
Добавлено спустя 28 минут:
Orion9
да, еще если можно, у менять есть такое:
| Code: | If IniRead("~/R", COMMANDER_INI, "Lister", "Maximized", 0) = 0 Then
WinGetPos("x", "y", "w", "h")
IniWrite("~/R", COMMANDER_INI, "Lister", "x", x)
IniWrite("~/R", COMMANDER_INI, "Lister", "y", y)
IniWrite("~/R", COMMANDER_INI, "Lister", "dx", w)
IniWrite("~/R", COMMANDER_INI, "Lister", "dy", h)
EndIf |
И я добавляю это через Pragma Include.
Можно ли сделать тоже самое, только через shift+клик по заголовку Lister (ну и понятно сразу с применением)? Т.е. листер становится в размер TC и записывает это в ini. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 977
|
(Separately) Posted: Fri Jan 02, 2026 20:42 Post subject: |
|
|
FallenAngel
Если я понял, функция GetNetSpeed была взята из справки. Я ее приложил в модуль, т.ч. можете удалить ее у себя, чтобы не было конфликта имен. Просто подключите новый модуль к конфигурации.
 InfoHeader.aucfg | Code: | ControlSetMouseAction /L /K:S /H:2 0 ToggleInfoHeader
Sleep(200)
Global gTitle = WinGetText(), gInfoHeader = gTitle, gShowTitle = 1, gTitleThread = 0
LaunchInfoHeader()
SetMessageAction 70 "SetInfoHeader"
Func ToggleInfoHeader()
gShowTitle = Not gShowTitle
IniWrite %COMMANDER_INI% "Autorun" "ShowTitle" %"gShowTitle"
Sleep(100)
LaunchInfoHeader()
EndFunc
Func SetInfoHeader()
WinSetText(gShowTitle ? gInfoHeader : gTitle)
EndFunc
Func LaunchInfoHeader()
IniRead gShowTitle %COMMANDER_INI% "Autorun" "ShowTitle" 1
If gShowTitle And Not gTitleThread Then
gInfoHeader = gTitle & ' ' & "Booting..."
WinSetText(gInfoHeader)
Sleep(200)
RunThread InfoHeader
EndIf
EndFunc
Func InfoHeader
Local nRecvSpeed, nSendSpeed, T1
gTitleThread = 1
While gShowTitle
T1 = GetUptime()
GetNetSpeed(nRecvSpeed, nSendSpeed)
gInfoHeader = gTitle & ' ' & Date("d MMMM, ddd") & '. CPU: ' & StrFormat("%02d", GetCPUUsage()) & '% RAM: ' & GetMemStats() & '% NET: ↓ ' & Round(nRecvSpeed / 1000, 1) & ' ↑ ' & Round(nSendSpeed / 1000, 1) & ' mb/s'
WinSetText(gInfoHeader)
While GetUptime() < T1 + 1000
If Not gShowTitle Then Break
Sleep(50)
WEnd
Wend
gTitleThread = 0
SetInfoHeader()
EndFunc
Func GetNetSpeed(ByRef nRecvSpeed, ByRef nSendSpeed)
Static nIntfIdx = GetNetInterface()
If nIntfIdx = -1 Then Return
Static nPrevRecv = GetNetInterfaceInfo(nIntfIdx, 'Recv')
Static nPrevSend = GetNetInterfaceInfo(nIntfIdx, 'Sent')
Static nPrevTime = GetUptime()
Local nRecv = GetNetInterfaceInfo(nIntfIdx, 'Recv')
Local nSend = GetNetInterfaceInfo(nIntfIdx, 'Sent')
Local nTime = GetUptime()
Local nTimeDiff = nTime - nPrevTime
nRecvSpeed = Round(Abs(nRecv - nPrevRecv) / nTimeDiff)
nSendSpeed = Round(Abs(nSend - nPrevSend) / nTimeDiff)
nPrevRecv = nRecv
nPrevSend = nSend
nPrevTime = nTime
EndFunc |
Работает?
Надеюсь, что да. А то меня не будет пару дней. Но вы не спешите, подумайте, что еще будет нужно. Когда вернусь, попробуем погоду вставить. Возможно обойдемся простым вызовом URLDownloadToFileW, т.к. он работает, я проверил:
 WttrDownloadTest | Code: | RegisterCommand 60041 "WttrDownloadTest"
Func WttrDownloadTest()
Local url = "https://wttr.in/London?format=3"
Local file = TEMP & "\wttr.txt"
If IsPressed(0x11) Then
tip("Internet connection.", 1, "Urlmon.dll")
hr = DllCall("Urlmon.dll\URLDownloadToFileW", _
"ptr", 0, "wstr", url, "wstr", file, "dword", 0, "ptr", 0, "hresult")
If hr <> 0 Then
txt = "An error occured." & auCRLF & url & auCRLF & _
"Error code: " & hr & auCRLF & GetINetECode(hr)
Return tip(txt, 3)
EndIf
Local txt = FileRead(file)
tip(StrTrim(txt), 1, "Urlmon.dll")
Return
EndIf
If WinInetDownloadFile(url, file) = 0 Then
Local txt = FileRead(file)
tip(StrTrim(txt), 1, "WinInet")
Else
tip("Не удалось получить данные " & url, 3, "Error")
EndIf
EndFunc |
Запуск с CTRL.
На счет листера, пока не знаю. Надо будет у Loopback спросить. Подручными средствами вряд ли получится (т.е. нет готовой команды типа ControlSetMouseAction /L /K:S для окна листера), но он может что-нибудь посоветует. Я тоже потом подумаю. |
|
| Back to top |
|
 |
FallenAngel
Joined: 30 Dec 2025 Posts: 6
|
(Separately) Posted: Fri Jan 02, 2026 21:25 Post subject: |
|
|
Orion9
Да, похоже работает, спасибо. Буду тестировать - отпишу подробнее.
UPD. Потестил, все ок. Можно смело оформлять готовым решением. В начале файла только указать что это, зачем и как использовать. По правилам хорошего тона, на три строчки кода полагается 1 комментарий, ну то такое, хотя бы инфо вначале.
По погоде. Заголовок обновляется каждую секунду. Нужно придумать как его не перегружать. К примеру, раз в час (не более) данные обновляются в файл\переменную.... а заголовок только подтягивает сталое значение. Плюс нужно пояснить как юзеру правильно указать свой город. Мини мануал. |
|
| Back to top |
|
 |
ZiabrevLV
Joined: 15 Sep 2022 Posts: 4
|
(Separately) Posted: Sat Jan 03, 2026 15:36 Post subject: |
|
|
Нужна помощь.
Есть две команды - включают и отключают сведения о дисковом пространстве
| Code: |
RegisterCommand 63001 "SwitchHide"
Func SwitchHide(lParam)
IniWrite %COMMANDER_INI% "Configuration" "DriveBarHide" ""
CommandExec cm_VisTwoDriveButtons 2
CommandExec cm_VisTwoDriveButtons 1
EndFunc
RegisterCommand 63002 "SwitchShow"
Func SwitchShow(lParam)
IniWrite %COMMANDER_INI% "Configuration" "DriveBarHide" "-"
CommandExec cm_VisTwoDriveButtons 2
CommandExec cm_VisTwoDriveButtons 1
EndFunc
|
Наддо объединить в одну команду:
RegisterCommand 63003 "SwitchShowHide"
Func SwitchShowHide(lParam)
| Code: |
If <выражение 1> Then
...
ElseIf <выражение 2> Then
...
Else
...
EndIf
|
Чтобы одна команда выполняла отключение \ включение сведения о дисковом пространстве |
|
| Back to top |
|
 |
|
|
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
|