Autorun
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
yahuu
Используйте WinGetText. Хэндл нужного элемента управления можно получить с помощью RequestInfo или, для произвольного элемента управления, с WinFind. Ниже пример получения текста строки состояния активной панели:
Используйте WinGetText. Хэндл нужного элемента управления можно получить с помощью RequestInfo или, для произвольного элемента управления, с WinFind. Ниже пример получения текста строки состояния активной панели:
Код: Выделить всё
MsgBox(WinGetText(RequestInfo(10003)))Loopback
Спасибо, что держите руку на пульсе. Плагин развивается, и это радует
А я, между прочим, еще никак не могу нарадоваться кнопке "Autorun", вместо стандартной и бесполезной "Alt+F4 Выход"
Заметил, что вы усовершенствовали-таки функцию GetState("vars"), и теперь она выдает содержательные данные. Но не думаете, что [Global] Envrs слишком раздувает объем информации из-за большого размера? Может, как-то отдельно выводить данные о переменных окружения?
Спасибо, что держите руку на пульсе. Плагин развивается, и это радует
А я, между прочим, еще никак не могу нарадоваться кнопке "Autorun", вместо стандартной и бесполезной "Alt+F4 Выход"
Заметил, что вы усовершенствовали-таки функцию GetState("vars"), и теперь она выдает содержательные данные. Но не думаете, что [Global] Envrs слишком раздувает объем информации из-за большого размера? Может, как-то отдельно выводить данные о переменных окружения?
По умолчанию в Autorun нет такой переменной. Ну и потом, что значит "раздувает"? Если есть какая-то переменная я хочу видеть, что она содержит, неважно, много или мало.Orion9 писал(а):Но не думаете, что [Global] Envrs слишком раздувает объем информации из-за большого размера?
В конце-концов всегда можно сделать свою функцию, которая будет убирать неугодные переменные из вывода.
А вот насчет списка переменных окружения - да, это может быть полезно.Orion9 писал(а):Может, как-то отдельно выводить данные о переменных окружения?
Loopback
А ведь справка значительно набрала в весе! Надо будет найти время нагнать все упущенное, но работа у вас явно не стоит на месте )
yahuu
В таких циклах желательно использовать Sleep(), иначе будет большая нагрузка на CPU и медленная работа самого TC.
yozhik
Очень важный нюанс. Взял себе на заметку 
А ведь справка значительно набрала в весе! Надо будет найти время нагнать все упущенное, но работа у вас явно не стоит на месте )
yahuu
Код: Выделить всё
Func ShowFullPathInTitle
While 1
srcPath = RequestCopyDataInfo(RequestCopyDataInfo("A") & "P")
srcName = RequestCopyDataInfo(RequestCopyDataInfo("A") & "N")
WinSetText(srcPath & srcName)
Wend
EndFunc yozhik
Код: Выделить всё
# если в процессе загрузки мы вызываем сторонние утилиты, то фокус может улетать от окна TC
# возвращаем его обратно
WinSetState(23)Да, фигово когда экзамен на носу, а ты прогулял полсеместра )sa писал(а):Так и две новые beta-версии (2.2.13 и 2.2.14) осенью выложены!
Справка, конечно, чертовски хороша: все так классно упорядочено, столько полезных функций добавлено - изучай не хочу ) А отмазка, что компютера не было под рукой, нынче не прокатывает
Гы-гы...) Первая лабораторка в году сделана )) Пока не предусмотрена обработка значений по-умолчанию, но вариант уже рабочий. Равномерное изменение тональности фона в панелях клавишами Ctrl+Shift+"+" и Ctrl+Shift+"-"
[cut][/cut]
А ведь можно из этого большее выжать
Autorun - сила страшная!
[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А ведь можно из этого большее выжать
Autorun - сила страшная!
Дополнительно задание к Лабораторной работе №1 - "Пульсар коммандера" 
[cut][/cut]
Запуск/Остатовка - Ctrl+"+" и Ctrl+"-"
[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 Запуск/Остатовка - Ctrl+"+" и Ctrl+"-"
Код: Выделить всё
[em_ProcessBar]
cmd=OPENBARMENU
param=%|COMMANDER_PATH|\USER\Bars\process.barКод: Выделить всё
Func DisplayProcessBar
CommandExec em_ProcessBar
Как получить текущую координату Y курсора ??
WinSetPos("", y,"","","", WinFind(0, "#32768")) ??
EndFunc
Я хочу переместить это меню в позицию курсора.
Как получить координаты курсора?