Страница 148 из 243
Добавлено: Ср окт 30, 2024 17:02
yahuu
Как удобно получить текст из элемента управления?
Можно ли добавить функцию: controlgettext? Я хочу отдельно получить количество выбранных файлов и папок в строке состояния.
Добавлено: Ср окт 30, 2024 21:20
Loopback
yahuu
Используйте WinGetText. Хэндл нужного элемента управления можно получить с помощью RequestInfo или, для произвольного элемента управления, с WinFind. Ниже пример получения текста строки состояния активной панели:
Добавлено: Пт ноя 01, 2024 06:35
yahuu
Спасибо. Когда я использовал StrPart, я заметил, что в примере синтаксис неправильный. sDay = StrPart("Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday","|", nDay) не хватает одной запятой.
Добавлено: Чт ноя 07, 2024 13:29
yahuu
Эти два примера также содержат грамматические ошибки:
FileGetTime
fi = IniRead("IniPath, "Main", "Wincmd.ini", 0)
ControlSetMouseAction
ControlSetMouseAction /R /H:64 0 CommandExec em_Lang %"IniRead('~/R', %COMMANDER_INI%, 'Configuration', 'LanguageIni')"
Добавлено: Чт ноя 07, 2024 18:23
jentoso
Возможно ли использовать через Autorun плагины из TWinKey (ClockDLL.dll, muCalc.dll, TCDirMenu.dll)?
Добавлено: Чт ноя 07, 2024 18:52
Loopback
yahuu
Действительно. Исправил, спасибо.
jentoso
Нет, конечно, у тех плагинов свой интерфейс.
Добавлено: Чт ноя 07, 2024 19:04
Orion9
Loopback
Спасибо, что держите руку на пульсе. Плагин развивается, и это радует
А я, между прочим, еще никак не могу нарадоваться кнопке "Autorun", вместо стандартной и бесполезной "Alt+F4 Выход"
Заметил, что вы усовершенствовали-таки функцию GetState("vars"), и теперь она выдает содержательные данные. Но не думаете, что [Global] Envrs слишком раздувает объем информации из-за большого размера? Может, как-то отдельно выводить данные о переменных окружения?
Добавлено: Чт ноя 07, 2024 19:36
Loopback
Orion9 писал(а):Но не думаете, что [Global] Envrs слишком раздувает объем информации из-за большого размера?
По умолчанию в Autorun нет такой переменной. Ну и потом, что значит "раздувает"? Если есть какая-то переменная я хочу видеть, что она содержит, неважно, много или мало.
В конце-концов всегда можно сделать свою функцию, которая будет убирать неугодные переменные из вывода.
Orion9 писал(а):Может, как-то отдельно выводить данные о переменных окружения?
А вот насчет списка переменных окружения - да, это может быть полезно.
Добавлено: Пт ноя 08, 2024 00:08
Orion9
Loopback
Да, вы правы: я тут не разобрался - давно файлы конфигурации не открывал )
Добавлено: Пт ноя 08, 2024 11:25
Orion9
Loopback
А ведь справка значительно набрала в весе! Надо будет найти время нагнать все упущенное, но работа у вас явно не стоит на месте )
yahuu
Код: Выделить всё
Func ShowFullPathInTitle
While 1
srcPath = RequestCopyDataInfo(RequestCopyDataInfo("A") & "P")
srcName = RequestCopyDataInfo(RequestCopyDataInfo("A") & "N")
WinSetText(srcPath & srcName)
Wend
EndFunc
В таких циклах желательно использовать Sleep(), иначе будет большая нагрузка на CPU и медленная работа самого TC.
yozhik
Код: Выделить всё
# если в процессе загрузки мы вызываем сторонние утилиты, то фокус может улетать от окна TC
# возвращаем его обратно
WinSetState(23)
Очень важный нюанс. Взял себе на заметку

Добавлено: Пт ноя 08, 2024 16:52
sa
Orion9 писал(а):А ведь справка значительно набрала в весе!
Так и две новые beta-версии (2.2.13 и 2.2.14) осенью выложены!
Добавлено: Пт ноя 08, 2024 23:32
Orion9
sa писал(а):Так и две новые beta-версии (2.2.13 и 2.2.14) осенью выложены!
Да, фигово когда экзамен на носу, а ты прогулял полсеместра )
Справка, конечно, чертовски хороша: все так классно упорядочено, столько полезных функций добавлено - изучай не хочу ) А отмазка, что
компютера не было под рукой, нынче не прокатывает

Добавлено: Сб ноя 09, 2024 13:13
Orion9
Гы-гы...) Первая лабораторка в году сделана )) Пока не предусмотрена обработка значений по-умолчанию, но вариант уже рабочий. Равномерное изменение тональности фона в панелях клавишами Ctrl+Shift+"+" и Ctrl+Shift+"-"
[cut]
Код: Выделить всё
SetHotkeyAction /K:C /K:S /V:187 SetBackGround 1
SetHotkeyAction /K:C /K:S /V:189 SetBackGround 2
Func SetBackGround(pAction)
Local bkg1, bkg2, upd = 1
IniRead /R bkg1 %COMMANDER_INI% "Colors" "BackColor" -1
IniRead /R bkg2 %COMMANDER_INI% "Colors" "BackColor2" -1
if bkg1 = -1 or bkg2 = -1 then
MsgBox("Default value in bkg1 or bkg2")
Return
endif
if pAction = 1 then
bkg1 = bkg1 + 1 + 256 + 65536
bkg2 = bkg2 + 1 + 256 + 65536
else
bkg1 = bkg1 - 1 - 256 - 65536
bkg2 = bkg2 - 1 - 256 - 65536
endif
if bkg1 < -1 or bkg2 < -1 then
MsgBox("bkg1 или bkg2 is out of range")
Return
endif
IniWrite /R %COMMANDER_INI% "Colors" "BackColor" %bkg1%
IniWrite /R %COMMANDER_INI% "Colors" "BackColor2" %bkg2%
If upd = 1 Then
SendCommand 2957
EndIf
EndFunc
[/cut]
А ведь можно из этого большее выжать
Autorun - сила страшная!
Добавлено: Сб ноя 09, 2024 19:24
Orion9
Дополнительно задание к Лабораторной работе №1 - "Пульсар коммандера"
[cut]
Код: Выделить всё
Global Pulsar = 0
SetHotkeyAction /K:C /K:S /V:187 SetBackGround 1
SetHotkeyAction /K:C /K:S /V:189 SetBackGround 2
SetHotkeyAction /K:C /V:187 SetPulsar 1
SetHotkeyAction /K:C /V:189 SetPulsar 0
Func SetBackGround(pAction)
Local bkg1, bkg2, upd = 1, max
max = 1*255 + 256*255 + 65536*255
IniRead /R bkg1 %COMMANDER_INI% "Colors" "BackColor" -1
IniRead /R bkg2 %COMMANDER_INI% "Colors" "BackColor2" -1
if bkg1 = -1 then bkg1 = max
if bkg2 = -1 then bkg2 = max
if pAction = 1 then
bkg1 = bkg1 + 1 + 256 + 65536
bkg2 = bkg2 + 1 + 256 + 65536
else
bkg1 = bkg1 - 1 - 256 - 65536
bkg2 = bkg2 - 1 - 256 - 65536
endif
if bkg1 > max then bkg1 = -1
if bkg2 > max then bkg2 = -1
if bkg1 < -1 then bkg1 = max
if bkg2 < -1 then bkg2 = max
IniWrite /R %COMMANDER_INI% "Colors" "BackColor" %bkg1%
IniWrite /R %COMMANDER_INI% "Colors" "BackColor2" %bkg2%
If upd = 1 Then
SendCommand 2957
SendCommand 2957
EndIf
EndFunc
Func SetPulsar(nParam)
if nParam = 1 and Pulsar = 1 then Return
Pulsar = nParam
While Pulsar = 1
For j = 1 To 2
For i = 1 To 100
SetBackGround(j)
Sleep(20)
if Pulsar = 0 then Return
Next
Next
Wend
EndFunc
[/cut]
Запуск/Остатовка - Ctrl+"+" и Ctrl+"-"
Добавлено: Сб ноя 09, 2024 19:41
yahuu
Код: Выделить всё
[em_ProcessBar]
cmd=OPENBARMENU
param=%|COMMANDER_PATH|\USER\Bars\process.bar
Код: Выделить всё
Func DisplayProcessBar
CommandExec em_ProcessBar
Как получить текущую координату Y курсора ??
WinSetPos("", y,"","","", WinFind(0, "#32768")) ??
EndFunc
Как WinFind найти "окно" #32768? Или меню?
Я хочу переместить это меню в позицию курсора.
Как получить координаты курсора?