Код:
#NoTrayIcon ; не отображать значок скрипта в трее
#SingleInstance force ; перезагрузить скрипт, если он уже запущен
#NoEnv ; запрещаем имена переменных как у переменных окружения
SendMode Input ; ускорренный ввод
#Persistent ; держать скрипт запущенным
SetTitleMatchMode 2 ; 2 - заголовок окна должен содержать значение, заданное в параметре
; ----------- редактируемые переменные - настройки ------------
cityguide := "City Guide" ; название окна CityGuide
myjamfile := "C:\Program Files\City Guide\78SPb.jam" ; за каким файлом пробок следим (боевой)
;myjamfile := "C:\CityGuide\City Guide 2.2\78SPb.jam" ; за каким файлом пробок следим (тестовый)
jamgreen := 8 ; до скольки минут считать возраст пробок зеленым
jamred := 40 ; до скольки минут считать возраст пробок красным
empty := "НЕТ" ; что пишем на экране, если пробочный файл очень старый
xPosition := 670 ; x-позиция на экране
yPosition := 105 ; y-позиция на экране
; -------- конец редактируемых переменных - настроек ----------
CityGuideActive := 0
Custom1Color := "600305"
Custom2Color := "036005"
MyTextEmpty := ""
gui, color, 000000
gui, font, s48 bold, Arial
Gui, Add, Text, c%Custom1Color% x200 y200 w130 h70 vMyRed, %MyText3%
Gui, Add, Text, c%Custom2Color% x0 y0 w130 h70 vMyGreen, %MyText1%
Gui, +LastFound +AlwaysOnTop
WinSet, TransColor, 000000 200
Gui, -Caption
Gui, Show, x%xPosition% y%yPosition% w130 h70 NoActivate, CGJAM
JamShow := 1
SetTimer, ShowHideJam ; отслеживать показ на экране только в окне СитиГида
SetTimer, SwitchText, 10000 ; проверять файл пробок каждые 10 секунд
return
GuiSize:
If (Errorlevel = 1)
Gui, Restore ; противодействуем минимизации окна
ShowHideJam:
Act := 0
IfWinActive, %cityguide%
{
Act := 1
}
Else
{
IfWinActive, CGJAM
{
Act := 1
}
}
If (Act = 1)
{
If (JamShow <> 1)
{
WinShow, CGJAM
JamShow := 1
}
}
Else
{
If (JamShow = 1)
{
WinHide, CGJAM
JamShow = 0
}
}
If CityGuideActive = 0
{
IfWinExist, %cityguide%
{
; CityGuide не был запущен, а сейчас найден в списке окон
WinActivate
Send, 5 ; включить GPS
CityGuideActive := 1
}
}
Else
{
IfWinNotExist, %cityguide%
{
CityGuideActive := 0
}
}
return
SwitchText:
; Получаем время файла пробок
FileGetTime, OutputVar, %myjamfile%
mhour := Substr(OutputVar, 9, 2)
mmin := Substr(OutputVar, 11, 2)
; Собираем текущую отметку времени (в минутах)
currconntimestamp := A_Min + A_Hour*60
lastjamtimestamp := mmin + mhour*60
If (currconntimestamp + 5 < lastjamtimestamp)
currconntimestamp := currconntimestamp + 24*60
; Получаем возраст файла пробок
jamtime := currconntimestamp - lastjamtimestamp
If (jamtime > 9)
{
jamtime := " " . jamtime
}
Else
{
jamtime := " " . jamtime
}
jamexpired := 0
If (currconntimestamp > lastjamtimestamp + jamgreen)
jamexpired := 1
If (currconntimestamp > lastjamtimestamp + jamred)
jamtime := empty
; тут надо нарисовать цветом возраст пробочного файла
If (jamexpired = 0)
{
; Делаем зеленым
GuiControl, Move, MyRed, x200 y200 ; сдвигать надо, чтобы красный текст не исчезал при показе
GuiControl, Text, MyRed, %MyTextEmpty%
GuiControl, Text, MyGreen, %jamtime%
GuiControl, Move, MyGreen, x0 y0
}
Else
{
; Делаем красным
GuiControl, Move, MyGreen, x200 y200 ; сдвигать надо, чтобы красный текст не исчезал при показе
GuiControl, Text, MyGreen, %MyTextEmpty%
GuiControl, Text, MyRed, %jamtime%
GuiControl, Move, MyRed, x0 y0
}
return