Я сворачиваю все окна в строки заголовка, когда не активен. Я хочу покрыть эти неактивные окна различными цветными графическими интерфейсами. Для графического интерфейса потребуются только минимальные функциональные возможности, только способ раскрасить заголовки строк в свернутом виде и неактивный. Таким образом, я могу сказать, что гораздо проще, когда смотрю на рабочий стол, полный строк заголовка.
Хотя я знаю, что у меня хранятся правильные координаты в качестве переменных, графический интерфейс вообще не отображается, если я указываю координаты в виде чисел или переменных. Но если я не укажу какие-либо координаты, графический интерфейс появится в середине экрана.
Это просто похоже на комбинацию
-settimer и таймер, который обновляет координаты при перемещении окна.
-alwaysontop (ish) определенного окна для каждого графического интерфейса (здесь можно воспользоваться некоторой справкой. Если вы хотите применить winset, вернитесь к графическому интерфейсу, когда связанное с ним окно неактивно, но также остается под любым новым активным окном (чтобы сохранить GUI виден при взгляде на рабочий стол).
- используя координату y соответствующего окна, чтобы узнать, как высоко разместить GUI (основная проблема, хотя я знаю, что у меня правильные координаты, хранящиеся в виде переменных)
- отображение разных цветов для каждого графического интерфейса.
- GUI должен охватывать всю ширину экрана и быть 1/17 высоты экрана (примерно высота строки заголовка с моим экраном / разрешением).
- скрыть графический интерфейс окна, когда связанное с ним окно активно, и окно, когда оно неактивно
#SingleInstance,Force
WinGetPos , X_SciTEWindow, Y_SciTEWindow, Width_SciTEWindow, Height_SciTEWindow, ahk_class SciTEWindow ;I don't even need the X_SciTEWindow, because the bars will all be aligned at x0, but it's there...
SysGet, aScreenHeight, 1
bar_height := Round(aScreenHeight / 17)
Gui, Color, aqua,FFB1B1
Gui, Show, w%A_ScreenWidth% h%bar_height%, SomeStupidBar
WinSet, Style, -20xC40000
Winmove, %SomeStupidBar%, x0, y%Y_SciTEWindow%, w%A_ScreenWidth%, h%bar_height%
MsgBox, Time to move the window to x0, y%Y_SciTEWindow%, w%A_ScreenWidth%, h%bar_height%
Winmove, %SomeStupidBar%, x0, y%Y_SciTEWindow%, w%A_ScreenWidth%, h%bar_height%
return
Esc::ExitApp
SetTimer, ShowGui, 500
ShowGui:
IfWinNotExist, ahk_class AutohotkeyGUI
{
Gui, +Owner%WinID% +Border +ToolWindow
Gui, Show, NoActivate x%X% y%Y% w51 h431, %GuiTitle%
}
else
{
WinWaitActive, ahk_class SciTEWindow
WinGetPos, X_SciTEWindow, Y_SciTEWindow,,, ahk_class Notepad
WinGet, WinID, ID, ahk_class SciTEWindow,,,
IfWinNotExist, ahk_class AutohotkeyGUI
WinGetPos, %SomeStupidBar%, , , , ahk_class AutohotkeyGUI
If %SomeStupidBar%<>X - 56
WinMove, ahk_class AutohotkeyGUI, X - 56
}
return
Любая помощь будет принята с благодарностью.