Single Post |
Topic: Autorun |
Author |
Message |
Orion9

|
Posted: Mon Nov 11, 2024 14:16 Post subject: |
|
|
Loopback
Еще один вопрос. А можно как-то изменить текст в строке состояния?
Code: | h = WinFind(AUTORUN_TCHANDLE, "TMyPanel", 5)
MsgBox(WinGetText(h)) |
Текст прочитан.
Code: | WinSetText("Test Text", h)
WinRedraw |
Если верить Autoit Windows Info, текст устанавливается, но изменения в ТС не отображаются.
QuickSearch eXtended во время работы создает симпатичную иконку в строке состояния, которая используются в качестве индикатора активности. Можно как-то придумать, чтобы Autorun тоже загружал иконку или маленькую bmp-шку куда угодно (хоть в заголовок) для индикации внутренних процессов?
Добавлено спустя 2 часа 41 минуту:
Что-то я забыл про такие классные ключики, как /R /DM для команды SetHotkeyAction. С ними вообще ништяк работает Никакой автоперебор тонов теперь не нужен, но оставил ради прикола. Теперь Ctrl+"+" запускает градации вверх, а Ctrl+"-" - вниз. Остановить можно повторным нажатием, либо ESC. Добавил счетчик записи в ini-файл и возможность посмотреть текущие значения с клавишей Win. И всякие прочие мелкие доработки. В общем, теперь уже лучше
 Backdrop.aucfg Code: | # Ctrl+Shift+"+" - Добавить яркость
# Ctrl+Shift+"-" - Убавить яркость
# Ctrl+"+" - Авто повышение тонов вверх
# Ctrl+"-" - Авто повышение тонов ввиз
# ESC - Отмена
Global Pulsar = 0, BACKDROP_THREAD = 0, Previous1 = 0, Previous2 = 0
SetHotkeyAction /K:C /K:S /V:187 /R /DM SetBackGround 1
SetHotkeyAction /K:C /K:S /V:189 /R /DM SetBackGround 2
SetHotkeyAction /K:C /V:187 SetPulsar 1
SetHotkeyAction /K:C /V:189 SetPulsar 2
RegisterCommand 70001 "AutoBackdrop"
if Previous1 = 0 or Previous2 = 0 then
IniRead /R Previous1 %COMMANDER_INI% "Colors" "BackColor" -1
IniRead /R Previous2 %COMMANDER_INI% "Colors" "BackColor2" -1
endif
Func AutoBackdrop(lParam)
If IsPressed (0x10) And IsPressed (0x11) Then Return SetBackGround(1) # Ctrl+Shift+Click() - Добавить яркость
If IsPressed (0x11) Then Return SetBackGround(2) # Ctrl+Click() - Убавить яркость
If IsPressed (0x12) Then # Alt+Click() - Вернуть предыдущий фон
if Previous1 > 0 or Previous2 > 0 then
IniWrite /R %COMMANDER_INI% "Colors" "BackColor" %Previous1%
IniWrite /R %COMMANDER_INI% "Colors" "BackColor2" %Previous2%
SendCommand 2957
SendCommand 2957
endif
Return
endif
If IsPressed (0x5B) Then Return ShowBackColor() # Win+Click() - Показ значений
if BACKDROP_THREAD > 0 then # поток уже запущен
BACKDROP_THREAD = 0
else
BACKDROP_THREAD = 1
RunThread ThreadBackdrop
MsgBox("Отслеживание буфера запущено." & auLF & auLF & "Значения в буфере будут применятся к фону панелей.")
endif
EndFunc
Func ThreadBackdrop()
Local h = 0, max = 1*255 + 256*255 + 65536*255, clip, last = 0, w = 0
# старые значения перед циклом
IniRead /R Previous1 %COMMANDER_INI% "Colors" "BackColor" -1
IniRead /R Previous2 %COMMANDER_INI% "Colors" "BackColor2" -1
While BACKDROP_THREAD = 1
# первая строка в буфере
clip = StrPart(ClipGet(), auLF, 1)
if IsInt(clip) then
# новое число в диапазоне
if clip > 0 and clip <= max and not (clip = last) then
WinSetText("Applying background value: " & clip)
IniWrite /R %COMMANDER_INI% "Colors" "BackColor" %clip%
IniWrite /R %COMMANDER_INI% "Colors" "BackColor2" %clip%
SendCommand 2957
SendCommand 2957
w = w + 1
last = clip
Sleep(300)
endif
endif
Sleep(250)
WinSetText("BACKDROP_THREAD is running...")
Wend
BACKDROP_THREAD = 0
WinSetText("")
MsgBox("Отслеживание буфера завершено" & auLF & auLF & "Применений фона: " & w)
EndFunc
Func SetBackGround(nParam)
Local bkg1, bkg2, max = 1*255 + 256*255 + 65536*255
# при пульсировании потолок чуть меньше
if Pulsar = 1 then max = 1*245 + 256*245 + 65536*245
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 nParam = 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 = bkg1 - 1 - 256 - 65536
if bkg2 > max then bkg2 = bkg2 - 1 - 256 - 65536
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%
SendCommand 2957
SendCommand 2957
EndFunc
Func SetPulsar(nParam)
local a, b, s
if Pulsar = 1 then
Pulsar = 0
Return
endif
Pulsar = 1
if nParam = 1 then
a = 1
b = 2
s = 1
else
a = 2
b = 1
s = -1
endif
While Pulsar = 1
For j = a To b step s
For i = 1 To 75
SetBackGround(j)
Sleep(25)
if Pulsar = 0 then Return
If IsPressed (0x1B) Then
Pulsar = 0
Return
endif
Next
Next
Wend
EndFunc
Func ShowBackColor()
Local txt, bkg1, bkg2, 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
blue = floor(bkg1/65536)
green = bkg1 - (blue * 65536)
green = floor(green/256)
red = bkg1 - (blue * 65536) - (green * 256)
txt = "Фон 1" & auLF & "Красный: " & red & auLF & "Зелёный: " & green & auLF & "Синий: " & blue & auLF & "Значение: " & bkg1
txt = txt & auLF & "--------------" & auLF
blue = floor(bkg2/65536)
green = bkg2 - (blue * 65536)
green = floor(green/256)
red = bkg2 - (blue * 65536) - (green * 256)
txt = txt & "Фон 2" & auLF & "Красный: " & red & auLF & "Зелёный: " & green & auLF & "Синий: " & blue & auLF & "Значение: " & bkg2
ShowHint(txt)
EndFunc |
 Кнопка Code: | TOTALCMD#BAR#DATA
70001
%COMMANDER_PATH%\Utilites\ColorMania\ColorMania.exe
Включить/Выключить|Отслеживание в буфере цвета фона|Ctrl - Убавить яркость|Ctrl+Shift - Добавить яркость|Alt - Вернуть предыдущий|Win - Показать значения
70001
|
P.S.
Все. Наигрался я с цветами  |
|
|
|
 |
|
Powered by phpBB © 2001, 2005 phpBB Group
|