- должны сохранятся.
Если нет своего значка (*.ico) для часов, могу потом выложить.
У меня скомпиленный в exe скрипт работает очень давно, сейчас на win10-x64.
Скрипт старый, но работает исправно.
Хотел еще добавить изменение размера в зависимости от разрешения монитора, но все времени не хватает подредактировать. Размер часов подгонял под монитор 1920X1080 - неплохо смотрятся.
#NoEnv
#SingleInstance Force
#Persistent
DetectHiddenWindows On
SetTitleMatchMode 2
;----------------------Check If Exist Settings-----------------
Settings := A_ScriptDir . "\Settings.ini"
IniRead, Date, % Settings, Parameters, ShowDate, 0
IniRead, Background, % Settings, Parameters, HideBackground, 0
IniRead, LockPos, % Settings, Parameters, LockPosition, 0
IniRead, OnTop, % Settings, Parameters, AlwaysOnTop, 0
IniRead, PosX, % Settings, Parameters, PositionX, 0
IniRead, PosY, % Settings, Parameters, PositionY, 0
IniRead, ThroughStatus, % Settings, Parameters, ClickThroughClock, 0
IniRead, BackgroundColor, % Settings, Parameters, BackgroundColor, 000000
IniRead, ClockColor, % Settings, Parameters, ClockColor, 00FF22
IniRead, TransValue, % Settings, Parameters, Transparency, 255
RegRead, AutoLaunch, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, ScreenClock
;------------------------------------------------------------
Gui 1: +ToolWindow -Caption
Gui 1: Color, %BackgroundColor%
Gui 1: Font, s52 c%ClockColor% Bold, Cambria
Gui 1: Add, Text, x10 y-8 gMove vClock, %A_Hour% : %A_Min% : %A_Sec%`n%A_DD% %A_MMMM%`n%A_DDDD%
Gui 1: Show, x%PosX% y%PosY% w468 h244, Screen Clock
WinSet, Region, 0-0 w368 h72 R16-16, Screen Clock
WinSet, Transparent, %TransValue%, Screen Clock
SetTimer, TicTac, 1000
Menu, Tray, Tip, Screen Clock
Menu, Tray, NoStandard
Menu, Tray, Add, Автозапуск с Windows, SwitchLaunch
Menu, Tray, Add, Всегда сверху, SetOnTop
Menu, Tray, Add, Прозрачность для кликов мыши, ClickThrough
Menu, Tray, Add, Не запоминать положение, LockPosition
Menu, Tray, Add, Показать дату, SwitchTimeDate
Menu, Tray, Add, Скрыть фон часов, SwitchBackground
Menu, Tray, Add, Скрыть/Показать часы, ToggleHide
Menu, Tray, Add, Настройка цветов и прозрачности, SetClockColors
Menu, Tray, Add, О программе, About
Menu, Tray, Add, Выйти из программы, ExitApp
Menu, Tray, Default, Выйти из программы
If ThroughStatus
{
Gui 1: +E0x20
Menu, Tray, Check, Прозрачность для кликов мыши
}
If OnTop = 1
{
WinSet, AlwaysOnTop, On, Screen Clock
Menu, Tray, Check, Всегда сверху
}
If Date = 1
{
WinSet, Region, 0-0 w468 h244 R16-16, Screen Clock
Menu, Tray, Check, Показать дату
}
If Background = 1
{
WinSet, TransColor, %BackgroundColor%, Screen Clock
Menu, Tray, Check, Скрыть фон часов
}
If LockPos = 1
{
Menu, Tray, Check, Не запоминать положение
}
If AutoLaunch = "%A_ScriptFullPath%"
{
RegWrite, REG_SZ, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, ScreenClock, "%A_ScriptFullPath%"
Menu, Tray, Check, Автозапуск с Windows
}
;----------------------SeT Transparency --------------------
#IfWinActive, Screen Clock
{
!WheelUp::
If TransValue <= 255
{
TransValue += 5
WinSet, Transparent, %TransValue%, Screen Clock
}
Return
!WheelDown::
If TransValue >= 15
{
TransValue -= 5
WinSet, Transparent, %TransValue%, Screen Clock
}
Return
}
;------------------------------------------------------------
Return
;----------------------Enable Window Drag -------------------
Move:
PostMessage, 0xA1, 2,,, A
If A_GuiEvent = DoubleClick
GoSub, ShowHideClock
Return
;------------------------------------------------------------
;----------------------Clock Engine :P-----------------------
TicTac:
GuiControl,, Clock, %A_Hour% : %A_Min% : %A_Sec%`n%A_DD% %A_MMMM%`n%A_DDDD%
Return
;------------------------------------------------------------
;---------------------Show/Hide Clock---------------------
ShowHideClock:
ToggleHide:
Toggle:=!Toggle
If Toggle
WinHide, Screen Clock
Else,
WinShow, Screen Clock
Return
;------------------------------------------------------------
;---------------------Don't Save Position--------------------
LockPosition:
If LockPos = 1
{
LockPos = 0
Menu, Tray, UnCheck, Не запоминать положение
IniWrite, 0, % Settings, Parameters, LockPosition
}
Else
{
LockPos = 1
GoSub, SavePos
Menu, Tray, Check, Не запоминать положение
IniWrite, 1, % Settings, Parameters, LockPosition
}
Return
;------------------------------------------------------------
;----------------------Set Clock Colors----------------------
SetClockColors:
SPosX := (899)-50
SPosY := (688)-160
Gui, 2:Color, %BackgroundColor%
Gui, 2:+ToolWindow +AlwaysOnTop -Caption
Gui, 2:Font, S12 c%ClockColor% Bold, Cambria
Gui, 2:Add, Text, gMove, Screen Clock - Настройки
Gui, 2:Add, Text, xp+210 gGui2Close, X
Gui, 2:Add, GroupBox, xp-210 yp+20 w220 h94 Center, Цвета
Gui, 2:Add, Text, xp+10 yp+28, Цвет фона:
Gui, 2:Add, Button, xp+120 yp-0 w74 h20 vBackgroundColorBtn gBackColorSet, Выбрать
Gui, 2:Add, Text, xp-120 yp+28, Цвет часов:
Gui, 2:Add, Button, xp+120 yp-0 w74 h20 vClockColorBtn gClockColorSet, Выбрать
Gui, 2:Add, GroupBox, xp-130 yp+44 wp+146 h60 Center, Уровень прозрачности
Gui, 2:Add, Slider, xp+5 yp+26 w210 h26 Range15-255 gSetTransparency vTransValue, %TransValue%
Gui, 2:Show, x%SPosX% y%SPosY% w250 h206, Screen Clock - Настройки
WinSet, Region, 0-0 w250 h206 R16-16, Screen Clock - Настройки
WinSet, Transparent, %TransValue%, Screen Clock - Настройки
Return
Gui2Close:
Gui2Escape:
Gui, 2:Destroy
Reload
Return
;------------------------------------------------------------
;-----------------Set Clock Background Color-----------------
BackColorSet:
Gui, Submit, NoHide
BackgroundColor:=ChooseColorA( 0x000000)
If BackgroundColor <>
{
IniWrite, %BackgroundColor%, % Settings,parameters, BackgroundColor
Gui 1: Color, %BackgroundColor%
GuiControl, 2:, BackgroundColorBtn, %BackgroundColor%
}
Return
;-----------------------Set Clock Color----------------------
ClockColorSet:
Gui, Submit, NoHide
ClockColor:=ChooseColorA( 0xffffff)
If ClockColor <>
{
IniWrite, %ClockColor%, % Settings,parameters, ClockColor
Gui 1: Font, c%ClockColor%
GuiControl, 1:Font, Clock
GuiControl, 2:, ClockColorBtn, %ClockColor%
}
Return
;------------------------------------------------------------
;-----------------------Set Transparency----------------------
SetTransparency:
Gui, Submit, NoHide
WinSet, Transparent, %TransValue%, Screen Clock
IniWrite, %TransValue%, % Settings, Parameters, Transparency
Return
;------------------------------------------------------------
;-----------------------Set AlwaysOnTop----------------------
SetOnTop:
If OnTop = 1
{
OnTop = 0
WinSet, AlwaysOnTop, Off, Screen Clock
IniWrite, 0, % Settings, Parameters, AlwaysOnTop
Menu, Tray, UnCheck, Всегда сверху
}
Else
{
OnTop = 1
WinSet, AlwaysOnTop, On, Screen Clock
IniWrite, 1, % Settings, Parameters, AlwaysOnTop
Menu, Tray, Check, Всегда сверху
}
Return
;------------------------------------------------------------
;----------------Show/Hide Day of Month & Week---------------
SwitchTimeDate:
If Date = 1
{
Date = 0
WinSet, Region, 0-0 w368 h72 R16-16, Screen Clock
IniWrite, 0, % Settings, Parameters, ShowDate
Menu, Tray, UnCheck, Показать дату
}
Else
{
Date = 1
WinSet, Region, 0-0 w468 h244 R16-16, Screen Clock
IniWrite, 1, % Settings, Parameters, ShowDate
Menu, Tray, Check, Показать дату
}
Return
;------------------------------------------------------------
;------------------Show/Hide Background of Clock-------------
SwitchBackground:
If Background = 1
{
Background = 0
WinSet, Transparent, %TransValue%, Screen Clock
IniWrite, 0, % Settings, Parameters, HideBackground
Menu, Tray, UnCheck, Скрыть фон часов
}
Else
{
Background = 1
WinSet, TransColor, %BackgroundColor%, Screen Clock
IniWrite, 1, % Settings, Parameters, HideBackground
Menu, Tray, Check, Скрыть фон часов
}
Return
;------------------------------------------------------------
;-------------------AutoLaunch with Windows------------------
SwitchLaunch:
If AutoLaunch = "%A_ScriptFullPath%"
{
AutoLaunch = 0
RegDelete, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, ScreenClock
Menu, Tray, UnCheck, Автозапуск с Windows
}
Else
{
AutoLaunch = "%A_ScriptFullPath%"
RegWrite, REG_SZ, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, ScreenClock, "%A_ScriptFullPath%"
Menu, Tray, Check, Автозапуск с Windows
}
Return
;------------------------------------------------------------
ExitApp:
If LockPos <> 1
GoSub, SavePos
Sleep, 500
ExitApp
Return
;---------------------Save Clock Position--------------------
SavePos:
WinGetPos, PosX,PosY,,, Screen Clock
IniWrite, %PosX%,% Settings, Parameters, PositionX
IniWrite, %PosY%,% Settings, Parameters, PositionY
Return
;------------------------------------------------------------
;------------------Click Through Clock Window-----------------
;Gui 1: +E0x80000 +LastFound +OwnDialogs +Owner -caption +E0x20 remove this
ClickThrough:
ThroughStatus:=!ThroughStatus
If ThroughStatus
{
Gui 1: +E0x20
Menu, Tray, ToggleCheck, Прозрачность для кликов мыши
IniWrite, %ThroughStatus%, % Settings, Parameters, ClickThroughClock
}
Else
{
Gui 1: -E0x20
Menu, tray, ToggleCheck, Прозрачность для кликов мыши
IniWrite, %ThroughStatus%, % Settings, Parameters, ClickThroughClock
}
Return
;------------------------------------------------------------
ChooseColorA( CR=0x0, hWnd=0x0, X=25, Y=25, Title=0, CustomColors=0, RGB=1 ) {
Static CC, Color = "000000", S22 = " ", ATOU = "MultiByteToWideChar"
If ! ( VarSetCapacity( CC ) ) {
CCD =
( LTrim Join
24ZV47ZV8N8J808N8H8H8J808HC0C0CH80808HFFMFFIFFFFMFFGFFGFFIFFFFGFFFFFFGC020C88G8K1BH2K2A
01B8O43G43G68G6FG6FG73G65G43G6FG6CG6FG72G41G2H2H2H2H2H2H2H2H2H2H2H2H2H2H2H2H2H2H2M8G4DG
53G2H53G68G65G6CG6CG2H44G6CG67P25O4H4G8CH9GFFFFFFFF82G26G42G61G73G69G63G2H63G6FG6CG6FG7
2G73G3ATBH35O4HEG8CG56GDG2FFFF82X25O4G6AG8CH9GFFFFFFFF82G26G43G75G73G74G6FG6DG2H63G6FG6
CG6FG72G73G3APBH35O4G74G8CG1CGD102FFFF82X35O4G96G8CHEGCF02FFFF8H26G44G65G66G69G6EG65G2H
43G75G73G74G6FG6DG2H43G6FG6CG6FG72G73G2H3EG3ET1H35O4GA6G2CHEH1GFFFF8H4FG4BX35N34GA6G2CH
EH2GFFFF8H43G61G6EG63G65G6CX35N64GA6G2CHEHE04FFFF8H26G48G65G6CG7QB1H5N98H4G76G74GC602FF
FF82TB1H5N180104H8G74GBE02FFFF82TB1H5N98G7CG28G1AGC502FFFF82X35N2C01C8H4HEGC902FFFF8H26
G6FT2H25N98G97G14H9GDA02FFFF82G43G6FG6CG6FG72T25NACG97G14H9GDB02FFFF82G7CG53G26G6FG6CG6
9G64P2H25NC2G7EG14H9GD302FFFF82G48G75G26G65G3AS835ND8G7CG12HCGBF02FFFF81T2H25NC2G8CG14H
9GD402FFFF82G26G53G61G74G3AS835ND8G8AG12HCGCG2FFFF81T2H25NC2G9AG14H9GD502FFFF82G26G4CG7
5G6DG3AS835ND8G98G12HCGC102FFFF81T2H25NF3G7EG18H9GD602FFFF82G26G52G65G64G3AS835OD017CG1
2HCGC202FFFF81T2H25NF3G8CG18H9GD702FFFF82G26G47G72G65G65G6EG3AS835OD018AG12HCGC302FFFF8
1T2H25NF3G9AG18H9GD802FFFF82G42G6CG26G75G65G3AW835OD0198G12HCGC402FFFF81X35N98GA6G8EHEG
C802FFFF8H26G41G64G64G2H74G6FG2H43G75G73G74G6FG6DG2H43G6FG6CG6FG72G73O
)
Loop 20
StringReplace,CCD,CCD,% Chr(70+21-A_Index),% SubStr("000000000000000000000",A_Index),All
Loop % VarSetCapacity(CC,StrLen(CCD)//2,0)
NumPut( "0x" . SubStr(CCD, 2*A_Index-1,2),CC,A_Index-1,"Char" )
}
Numput( &CC+100,CC,8 ), NumPut( &CC+36,CC,16 )
IfNotEqual,CustomColors,0, Loop, Parse, CustomColors, |
_ := (A_LoopField<>"" && A_Index<17) ? NumPut("0x" A_LoopField,CC,36+(4*(A_Index-1))) : 0
Title ? DllCall( ATOU, Int,0,Int,0, Str,Title S22, UInt,22, UInt,&CC+122, UInt,44 ) : 0
NumPut(Y,CC,112,"UShort"), NumPut(X,CC,110,"UShort"), NumPut(hWnd,CC,4)
WinExist( "ahk_id" hWnd ) ? NumPut(0,CC,104) : 0
RGB ? NumPut((((CR&0xFF)<<16)|(CR&0xFF00)|((CR&0xFF0000)>>16)),CC,12) : NumPut(CR,CC,12)
If ! DllCall( "comdlg32\ChooseColorA", UInt,&CC ) || ErrorLevel
Return
DllCall( "msvcrt\sprintf", Str,Color, Str,"%06X", UInt, RGB ? ( (((CR:=Numget(CC,12) )
&0xFF)<<16)|(CR&0xFF00)|((CR&0xFF0000)>>16)) : Numget(CC,12) )
Return Color
}
;------------------------------------------------------------
About:
MsgBox, 0x40, Screen Clock, Часы для рабочего стола.
Return
;------------------------------------------------------------