Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #NoEnv
- #SingleInstance, Force
- #Persistent
- ; Initial state - icon is red
- iconState := "red"
- Menu, Tray, Icon, shell32.dll, 110 ; Red icon (red shield)
- Menu, Tray, Tip, Click to start timer (1 hour)
- ; Make the tray icon clickable
- Menu, Tray, NoStandard
- Menu, Tray, Add, Start Timer, StartTimer
- Menu, Tray, Add, Exit, ExitApp
- Menu, Tray, Default, Start Timer
- Menu, Tray, Click, 1 ; Single click to activate
- return
- StartTimer:
- if (iconState = "red")
- {
- ; Set icon to green
- Menu, Tray, Icon, shell32.dll, 103 ; Green icon (green checkmark)
- iconState := "green"
- startTime := A_TickCount
- ; Set timer for 1 hour (3600000 milliseconds)
- SetTimer, CheckTimer, 1000 ; Check every second
- ; Update tooltip immediately
- Gosub, UpdateTooltip
- }
- return
- CheckTimer:
- elapsedTime := A_TickCount - startTime
- if (elapsedTime >= 3600000) ; 1 hour = 3600000 ms
- {
- Menu, Tray, Icon, shell32.dll, 110 ; Red icon
- iconState := "red"
- SetTimer, CheckTimer, Off
- Menu, Tray, Tip, Timer completed! Click to restart.
- TrayTip, Timer Completed, The 1-hour timer has finished., 1, 1
- }
- else
- {
- ; Update the tooltip with remaining time
- Gosub, UpdateTooltip
- }
- return
- UpdateTooltip:
- elapsedTime := A_TickCount - startTime
- remainingTime := 3600000 - elapsedTime
- remainingMinutes := Floor(remainingTime / 60000)
- remainingSeconds := Floor(Mod(remainingTime / 1000, 60))
- if (remainingTime > 0)
- {
- tipText := remainingMinutes . "m " . remainingSeconds . "s remaining"
- Menu, Tray, Tip, %tipText%
- }
- return
- ExitApp:
- ExitApp
- return
Advertisement
Add Comment
Please, Sign In to add comment