If WinExists("%_StartClock_%") Then ;Checks to see if StartClock is already running Exit EndIf ;//setting environment variables// #include Opt("GuiOnEventMode", 1) Opt("GUICoordMode", 1) Opt ("WinTitleMatchMode", 4) Opt ("WinTextMatchMode", 2) Opt ("WinWaitDelay", 300) AutoItWinSetTitle("%_StartClock_%") ProcessSetPriority("StartClock.exe", 0) $Button1_pos = ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") ;find and store location of button1(start button) $Rebar_pos = ControlGetPos("classname=Shell_TrayWnd", "", "ReBarWindow321") ;entire task and quicklaunch area $GetTime = FileGetTime(@ScriptDir & "\StartClock.ini", 0, 1) ;store startclock.ini last modified $Time = "" $DDate = "" $Date = "" 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 ;//end// ResizBtn() AdlibEnable( "Watch", 300) Do $HOUR = @HOUR $MIN = @MIN ;//wait for changes in startclock.ini// If FileGetTime(@ScriptDir & "\StartClock.ini", 0, 1) <> $GetTime Then ReadINI() If $HideTrayIcon = 4 Then $HideTrayIcon = 1;hide tray icon Else $HideTrayIcon = 0;show tray icon 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 $GetTime = FileGetTime(@ScriptDir & "\StartClock.ini", 0, 1) EndIf ;//end// ;//define seconds// If $ShowSeconds = 1 Then $SEC = ":" & @SEC Else $SEC = "" EndIf ;//end// ;//define date// If $ShowDate = 1 Then CallDate() Else $Date = "" EndIf ;//end// ;//define hours// If $ClockType = 1 Then If $HOUR <= 11 And Not $HOUR = 00 Then $HOUR = 24 + $HOUR - 24 $AMPM = " AM" ElseIf $HOUR > 12 Then $HOUR = $HOUR - 12 $AMPM = " PM" ElseIf $HOUR = 12 Then $HOUR = $HOUR $AMPM = " PM" ElseIf $HOUR = 00 Then $HOUR = "12" $AMPM = " AM" EndIf $Time = $HOUR & ":" & $MIN & $SEC & $AMPM & $Date Else $Time = $HOUR & ":" & $MIN & $SEC & $Date EndIf ;//end// Sleep(1000) Until 1 <> 1 ;FUNCTIONS Func Watch() If ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") <> $Pre_Watch Then ResizBtn() EndIf EndFunc Func ResizBtn() $Btn_Sized = StringLen(String($Time)) * 4.5 $TrayNEW = ControlGetPos("classname=Shell_TrayWnd", "", "ReBarWindow321") If $Rebar_pos[3] <> $TrayNEW[3] Then RefreshTray() ;drastic theme changes If $Rebar_pos[2] > $Rebar_pos[3] Then ;entire tray width greater than height ControlMove("classname=Shell_TrayWnd", "", "ReBarWindow321", $Rebar_pos[0] + $Btn_Sized, $Rebar_pos[1], $Rebar_pos[2] - $Btn_Sized, $Rebar_pos[3]) EndIf ControlMove("classname=Shell_TrayWnd", "", "Button1", $Button1_pos[0], $Button1_pos[1], $Button1_pos[2] + $Btn_Sized, $Button1_pos[3]) ;x, y, width, height ControlSetText("classname=Shell_TrayWnd", "", "Button1", $Time) GLOBAL $Pre_Watch = ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") 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 $Button1_pos = ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") ;Start Button NEW replace $Button1_pos eventually $Rebar_pos = 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