If WinExists("%_StartClock_%") Then ;Checks to see if StartClock is already running Exit EndIf #include Opt("GuiOnEventMode", 1) Opt("GUICoordMode", 1) Opt ("WinTitleMatchMode", 4) Opt ("WinTextMatchMode", 2) Opt ("WinWaitDelay", 10) AutoItWinSetTitle("%_StartClock_%") ProcessSetPriority("StartClock.exe", 0) ;PREDEFINED VARIABLES $Button1POS = ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") ;Start button NEW replace $Button1POS eventually $ReBarPOS = ControlGetPos("classname=Shell_TrayWnd", "", "ReBarWindow321") ;entire runningApp and quicklaunch area $GetTime = FileGetTime(@ScriptDir & "\StartClock.ini", 0, 1) ;checks to see when INI was last changed $Btn_Sized = "" $Btn_Date = "" $Btn_Time = "" $Btn_Sec = "" $Time = "" $DDate = "" $Date = "" $HHour = @HOUR $MMin = @MIN $SSec = @SEC If FileExists(@ScriptDir & "\StartClock.ini") Then ReadINI() Else MakeINI() EndIf Opt ("TrayIconHide", $HideTrayIcon) If $BeginAtStartup = 1 Then RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "StartClock", "REG_SZ", @ScriptFullPath) Else RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "StartClock") EndIf If $DisableHotkeys = 4 Then HotKeySet( "^!x", "ExitScript"); CTRL+ALT+X HotKeySet( "^!c", "Config"); CTRL+ALT+C EndIf AdlibEnable( "Watch", 250) Do ;DYNAMIC OPTIONS If FileGetTime(@ScriptDir & "\StartClock.ini", 0, 1) <> $GetTime Then ReadINI() If $HideTrayIcon = 4 Then ;HideTrayIcon $HideTrayIcon = 1 Else $HideTrayIcon = 0 EndIf Opt ("TrayIconHide", $HideTrayIcon) If $BeginAtStartup = 1 Then RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "StartClock", "REG_SZ", @ScriptFullPath) Else RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "StartClock") EndIf If $DisableHotkeys = 4 Then HotKeySet( "^!x", "ExitScript"); CTRL+ALT+X HotKeySet( "^!c", "Config"); CTRL+ALT+C Else HotKeySet( "^!x") HotKeySet( "^!c") EndIf $Btn_Sized = StringLen(String($Time)) * 6 + $Btn_Date - $Btn_Time + $Btn_Sec EndIf ;SET SECONDS PROPERTIES If $ShowSeconds = 1 Then $SSec = @SEC If $SSec = 00 Then $MMin = @MIN $Sec = ":" & $SSec $Btn_Sec = 12 Else $Sec = "" $Btn_Sec = "" EndIf ;SET DATE PROPERTIES If $ShowDate = 1 Then CallDate() Else $Date = "" $Btn_Date = "" EndIf ;SET TIME PROPERTIES If $MMin = 00 Then $HHour = @HOUR If $ClockType = 1 Then If $HHour <= 11 And Not $HHour = 00 Then $Hour = 24 + $HHour - 24 $AMPM = " AM" ElseIf $HHour > 12 Then $Hour = $HHour - 12 $AMPM = " PM" ElseIf $HHour = 12 Then $Hour = $HHour $AMPM = " PM" ElseIf $HHour = 00 Then $Hour = "12" $AMPM = " AM" EndIf $Time = $Hour & ":" & $MMin & $Sec & $AMPM & $Date $Btn_Time = "" Else $Time = $HHour & ":" & $MMin & $Sec & $Date $Btn_Time = "";12 EndIf $Btn_Sized = StringLen(String($Time)) * 6 + $Btn_Date - $Btn_Time + $Btn_Sec Sleep(1000) Until 1 <> 1 ;FUNCTIONS Func Watch() EndFunc Func ResizBtn() $TrayNEW = ControlGetPos("classname=Shell_TrayWnd", "", "ReBarWindow321") If $ReBarPOS[3] <> $TrayNEW[3] Then RefreshTray() ;drastic theme changes If $ReBarPOS[2] > $ReBarPOS[3] Then ;entire tray width greater than height ControlMove("classname=Shell_TrayWnd", "", "ReBarWindow321", $ReBarPOS[0] + $Btn_Sized, $ReBarPOS[1], $ReBarPOS[2] - $Btn_Sized, $ReBarPOS[3]) EndIf ControlMove("classname=Shell_TrayWnd", "", "Button1", $Button1POS[0], $Button1POS[1], $Button1POS[2] + $Btn_Sized, $Button1POS[3]) ;x, y, width, height ControlSetText("classname=Shell_TrayWnd", "", "Button1", $Time) EndFunc ;==>ResizBtn Func CallDate() If @MON = 1 Then $mon = "Jan" ElseIf @MON = 2 Then $mon = "Feb" ElseIf @MON = 3 Then $mon = "Mar" ElseIf @MON = 4 Then $mon = "Apr" ElseIf @MON = 5 Then $mon = "May" ElseIf @MON = 6 Then $mon = "June" ElseIf @MON = 7 Then $mon = "July" ElseIf @MON = 8 Then $mon = "Aug" ElseIf @MON = 9 Then $mon = "Sept" ElseIf @MON = 10 Then $mon = "Oct" ElseIf @MON = 11 Then $mon = "Nov" ElseIf @MON = 12 Then $mon = "Dec" EndIf $Date = " - " & $mon & " " & @MDAY $Btn_Date = (StringLen(String($Date)) * 2) - 6 EndFunc ;==>CallDate Func RefreshTray() ProcessWaitClose( "net.exe" ) Opt ("TrayIconHide", 0) Opt ("TrayIconHide", 1) Opt ("TrayIconHide", $HideTrayIcon) $Button1TXT = ControlGetText("classname=Shell_TrayWnd", "", "Button1") ;Start Button $Button1POS = ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") ;Start Button NEW replace $Button1POS eventually $ReBarPOS = ControlGetPos("classname=Shell_TrayWnd", "", "ReBarWindow321") ;entire runningApp and quicklaunch area EndFunc ;==>RefreshTray Func ReadINI() GLOBAL $ShowSeconds = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "ShowSeconds", "4") GLOBAL $ClockType = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "ClockType", "1") GLOBAL $ShowDate = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "ShowDate", "4") GLOBAL $HideTrayIcon = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "HideTrayIcon", "4") GLOBAL $BeginAtStartup = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "BeginAtStartup", "4") GLOBAL $DisableHotkeys = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "DisableHotkeys", "4") EndFunc Func MakeINI() GuiCreate("StartClock Configuration", 248, 148,(@DesktopWidth-224)/2, (@DesktopHeight-178)/2 , 0x12CA0000) GUISetState (@SW_SHOW) $Label_Options = GuiCtrlCreateLabel("Options:", 15, 10, 60, 20) GLOBAL $Radio_12Hour = GuiCtrlCreateRadio("12 Hour Clock", 15, 30, 100, 20) GLOBAL $Radio_24Hour = GuiCtrlCreateRadio("24 Hour Clock", 15, 50, 90, 20) GLOBAL $Checkbox_ShowSeconds = GuiCtrlCreateCheckbox("Show Seconds", 15, 70, 90, 20) GLOBAL $Checkbox_ShowDate = GuiCtrlCreateCheckbox("Show Date", 15, 90, 70, 20) GLOBAL $Checkbox_Tray = GuiCtrlCreateCheckbox("Show Tray Icon", 140, 30, 100, 20) GLOBAL $Checkbox_Startup = GuiCtrlCreateCheckbox("Begin at Startup", 140, 50, 100, 20) GLOBAL $Checkbox_Hotkeys = GuiCtrlCreateCheckbox("Disable Hotkeys", 140, 70, 100, 20) GLOBAL $Exit1 = GuiCtrlCreateButton("Exit", 78, 120, 90, 20) If FileExists (@ScriptDir & "\StartClock.ini") Then ReadINI() If $ClockType = 4 Then GUICtrlSetState($Radio_24Hour, 1) Else GUICtrlSetState($Radio_12Hour, 1) EndIf GUICtrlSetState ( $Checkbox_ShowSeconds, $ShowSeconds ) GUICtrlSetState ( $Radio_12Hour, $ClockType ) GUICtrlSetState ( $Checkbox_ShowDate, $ShowDate ) GUICtrlSetState ( $Checkbox_Tray, $HideTrayIcon ) GUICtrlSetState ( $Checkbox_Startup, $BeginAtStartup ) GUICtrlSetState ( $Checkbox_Hotkeys, $DisableHotkeys ) Else GUICtrlSetState ( $Checkbox_ShowSeconds, 4) GUICtrlSetState ( $Radio_12Hour, 1 ) GUICtrlSetState ( $Checkbox_ShowDate, 4) GUICtrlSetState ( $Checkbox_Tray, 4) GUICtrlSetState ( $Checkbox_Startup, 4) GUICtrlSetState ( $Checkbox_Hotkeys, 4) IniWrite ( "StartClock.ini", "Settings", "ShowSeconds", 4 ) IniWrite ( "StartClock.ini", "Settings", "ClockType", 1 ) IniWrite ( "StartClock.ini", "Settings", "ShowDate", 4 ) IniWrite ( "StartClock.ini", "Settings", "HideTrayIcon", 4 ) IniWrite ( "StartClock.ini", "Settings", "BeginAtStartup", 4 ) IniWrite ( "StartClock.ini", "Settings", "DisableHotkeys", 4 ) ReadINI() EndIf GUICtrlSetOnEvent($Radio_12Hour, "ButtonPressed") GUICtrlSetOnEvent($Radio_24Hour, "ButtonPressed") GUICtrlSetOnEvent($Checkbox_ShowSeconds, "ButtonPressed") GUICtrlSetOnEvent($Checkbox_ShowDate, "ButtonPressed") GUICtrlSetOnEvent($Checkbox_Tray, "ButtonPressed") GUICtrlSetOnEvent($Checkbox_Startup, "ButtonPressed") GUICtrlSetOnEvent($Checkbox_Hotkeys, "ButtonPressed") GUICtrlSetOnEvent($GUI_EVENT_CLOSE, "ExitPressed") GuiSetOnEvent($GUI_EVENT_CLOSE, "ExitPressed") EndFunc Func ButtonPressed() IniWrite ( "StartClock.ini", "Settings", "ShowSeconds", GUIRead( $Checkbox_ShowSeconds ) ) IniWrite ( "StartClock.ini", "Settings", "ClockType", GUIRead( $Radio_12Hour ) ) IniWrite ( "StartClock.ini", "Settings", "ShowDate", GUIRead( $Checkbox_ShowDate ) ) IniWrite ( "StartClock.ini", "Settings", "HideTrayIcon", GUIRead( $Checkbox_Tray ) ) IniWrite ( "StartClock.ini", "Settings", "BeginAtStartup", GUIRead( $Checkbox_Startup ) ) IniWrite ( "StartClock.ini", "Settings", "DisableHotkeys", GUIRead( $Checkbox_Hotkeys ) ) EndFunc Func ExitPressed() GUIDelete() EndFunc Func Config() GUIDelete() MakeINI() EndFunc ;==>Config Func ExitScript() AdlibDisable() Opt ( "TrayIconHide", 0) Opt ("TrayIconHide", 1) Opt ("TrayIconHide", $HideTrayIcon) Exit EndFunc ;==>ExitScript