Orion9

|
Posted: Sun Jan 04, 2026 14:10 Post subject: |
|
|
FallenAngel
На комментарии просто времени не хватило, хотел сделать рабочий вариант, чтобы вы могли попробовать, и вроде даже успел )
А сам функционал был уже в модуле Title.aucfg, мне просто пришлось освежить немного память и взять кое-что оттуда. Там, конечно, всё сильно нагромождено переменными и раздутым телом цикла, но сам принцип тот же. Запуск заголовка происходит после считывания ключа ShowTitle, а выход из цикла при присвоении переменной gShowTitle значения false.
Есть менее громоздкая версия, состоящая всего из 200 строк. По сути это первая версия заголовка, где алгоритм предается более наглядно, и в нем нет ничего лишнего: только пинг, память и процессор. Если к этому добавить короткую дату и скорость передачи трафика, то и получится заголовок, которым я постоянно пользуюсь.
Вообще, считаю, что Гислер мог и сам сделать такой функционал — он точно не помешал бы и безусловно украсил бы его детище. Но к сожалению, лучшие годы маестро на танцполе уже позади, а включать мозг 8-летней девочки при подходе к проблемам пользователей больше не получается
Например, скорость передачи трафика в заголовке очень даже полезная фича при работе с сетевым диском, а про память и цпу и говорить не нечего.
На счет погоды. Может быть, город и не потребуется. Я сначала думал, что нет возможности указать координаты, но сейчас более внимательно посмотрел, оказыается есть в справке об этом. Соответственно, можно указывать в запросе нужные координаты, например:
https://wttr.in/55.75,37.62?format=3
Что эквивалентно:
https://wttr.in/Moscow?format=3
И наверное, так будет лучше, чем просто указание города или автоматическое определение местоположения по IP.
Но все-равно строку запроса пользователю придется формировать самостоятельно. Для этого нужно знать все ключи однострочного вывода, которые будут сохраняться в ini-файле и считываться оттуда при запуске заголовка.
Интервал обновления тоже будет сохраняться. В общем, завтра попробую что-то сделать. Может с первого наскока чего и получится )
ZiabrevLV
У вас всё почти есть. Нужно только считать ключ DriveBarHide для определения текущего состояния, и в зависимости от его значения, выполнить ту или иную функцию. То есть:
| Code: | Local sDriveBarHide
IniRead sDriveBarHide %COMMANDER_INI% "Configuration" "DriveBarHide" ""
If StrPos(sDriveBarHide, "-") Then
IniWrite %COMMANDER_INI% "Configuration" "DriveBarHide" ""
Else
IniWrite %COMMANDER_INI% "Configuration" "DriveBarHide" "-"
EndIf
CommandExec cm_VisTwoDriveButtons 2
CommandExec cm_VisTwoDriveButtons 1 |
Только я не проверял работоспособность, но кажется здесь нужно быть осторожным, т.к. ключ DriveBarHide может содержать подстроки, а значит их тоже нужно будет сохранять.
 Hidden text | Code: | [Configuration]
DriveBarHide=drive_list
Wincmd.ini Version: 7.03
Управляет скрытием кнопок дисков и других элементов, которые могут находиться в той же панели. Выборочно могут быть скрыты:
A..Z: кнопки с буквами дисков;
0..9: кнопки с активными FTP-подключениями;
\ (обратный слэш): кнопка "Сеть/FS-плагины" для открытия виртуальной папки 'Сеть';
. (точка): пара кнопок для перехода в корневой и родительский каталог;
- (чёрточка): метка текущего тома и сведения о дисковом пространстве;
; (точка с запятой): кнопки для USB-устройств без буквы диска (например, смартфонов).
Символы записываются подряд без разделителей, регистр букв значения не имеет. Пример: A\ (скрытие кнопок для дисковода А: и для сетевого окружения).
По умолчанию значение не задано (ничего не скрывается).
ПРИМЕЧАНИЯ:
В отличие от ключа Allowed, скрытые в этой панели диски остаются доступными в их выпадающем списке (ALT+F1/F2), в цепочках навигации, в дереве каталогов, при навигации с помощью команды "cd" или встроенных команд TC наподобие cm_GoToPreviousDrive/cm_GoToNextDrive. Эффект применения команды cm_OpenDriveByIndex (для переключения на диск с заданным в качестве параметра порядковым номером) зависит от того, отображается ли вообще панель дисков (если да, порядковый отсчёт идёт по ней с игнорированием скрытых кнопок, если нет — по всем пунктам списка дисков).
Метка текущего тома, сведения о дисковом пространстве и кнопки перехода в корневой/родительский каталог добавляются в панель дисков после основных кнопок ТОЛЬКО при отсутствии выпадающего меню дисков (DriveCombo=0), в противном случае они отображаются в строке с этим списком. Значения "." (точка) и "-" (чёрточка, символ дефиса/минуса) учитываются в ключе DriveBarHide ТОЛЬКО при размещении соответствующих элементов основного окна TC в одной панели с кнопками дисков.
Для скрытия дисков клиентского компьютера на терминальном сервере они перечисляются после символа доллара, а в сочетании с другими элементами указываются в последнюю очередь. Например, запись DriveBarHide=A$CDE означает скрытие кнопок для дисковода A: и для клиентских дисков C:, D:, E:.
Следует иметь в виду, что хотя кнопка "Сеть/FS-плагины" непосредственно открывает только список сетевых элементов и/или FS-плагинов, она отображается в панели дисков нажатой и при открытии в файловой панели TC ряда других виртуальных папок ('Рабочий стол', 'Мой компьютер', 'Корзина', 'Принтеры'). |
Т.е. возможно так будет правильнее:
| Code: | RegisterCommand 63003 "SwitchShowHide"
Func SwitchShowHide(lParam)
Local sDriveBarHide, sValue
IniRead sDriveBarHide %COMMANDER_INI% "Configuration" "DriveBarHide" ""
If StrPos(sDriveBarHide, "-") Then
# удаление "-" из значения ключа
sValue = StrReplace(sDriveBarHide, "-", "")
IniWrite %COMMANDER_INI% "Configuration" "DriveBarHide" sValue
Else
# добавление "-" к значению ключа
sValue = sDriveBarHide & "-"
IniWrite %COMMANDER_INI% "Configuration" "DriveBarHide" sValue
EndIf
CommandExec cm_VisTwoDriveButtons 2
CommandExec cm_VisTwoDriveButtons 1
EndFunc |
|
|