File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -56,6 +56,12 @@ func Run() {
5656 config .Save ()
5757 }
5858 case "4" :
59+ if daemon .IsInStartup () {
60+ daemon .RemoveFromStartup ()
61+ } else {
62+ daemon .AddToStartup ()
63+ }
64+ case "5" :
5965 return
6066 }
6167 }
@@ -71,6 +77,13 @@ func printMenu() {
7177 alertsAction = "Disable alerts"
7278 }
7379
80+ autostartStatus := "off"
81+ autostartAction := "Add to startup"
82+ if daemon .IsInStartup () {
83+ autostartStatus = "on"
84+ autostartAction = "Remove from startup"
85+ }
86+
7487 fmt .Printf (`♨️ HotAMD v%s
7588
7689Status
@@ -79,12 +92,14 @@ Status
7992 Alerts: %s
8093 Alert temp: %d°C
8194 Fan-off alert: %d°C
95+ Autostart: %s
8296
8397Actions
8498 1) %s
8599 2) Set alert temp
86100 3) Set fan-off alert temp
87- 4) Exit
101+ 4) %s
102+ 5) Exit
88103
89104> ` ,
90105 version ,
@@ -93,7 +108,9 @@ Actions
93108 alertsStatus ,
94109 config .Config .MaxTemp ,
95110 config .Config .MaxFanOffTemp ,
111+ autostartStatus ,
96112 alertsAction ,
113+ autostartAction ,
97114 )
98115}
99116
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import (
1111 "time"
1212
1313 "golang.org/x/sys/windows"
14+ "golang.org/x/sys/windows/registry"
1415)
1516
1617var eventPtr = win .Utf16 ("Global\\ HotAMD" )
@@ -69,3 +70,51 @@ func monitorGPU() {
6970 time .Sleep (10 * time .Second )
7071 }
7172}
73+
74+ func AddToStartup () {
75+ exePath , err := os .Executable ()
76+ if err != nil {
77+ return
78+ }
79+
80+ key , _ , err := registry .CreateKey (
81+ registry .CURRENT_USER ,
82+ `Software\Microsoft\Windows\CurrentVersion\Run` ,
83+ registry .SET_VALUE ,
84+ )
85+ if err != nil {
86+ return
87+ }
88+ defer key .Close ()
89+
90+ key .SetStringValue ("HotAMD" , exePath + " --daemon" )
91+ }
92+
93+ func RemoveFromStartup () {
94+ key , err := registry .OpenKey (
95+ registry .CURRENT_USER ,
96+ `Software\Microsoft\Windows\CurrentVersion\Run` ,
97+ registry .SET_VALUE ,
98+ )
99+ if err != nil {
100+ return
101+ }
102+ defer key .Close ()
103+
104+ key .DeleteValue ("HotAMD" )
105+ }
106+
107+ func IsInStartup () bool {
108+ key , err := registry .OpenKey (
109+ registry .CURRENT_USER ,
110+ `Software\Microsoft\Windows\CurrentVersion\Run` ,
111+ registry .QUERY_VALUE ,
112+ )
113+ if err != nil {
114+ return false
115+ }
116+ defer key .Close ()
117+
118+ _ , _ , err = key .GetStringValue ("HotAMD" )
119+ return err == nil
120+ }
You can’t perform that action at this time.
0 commit comments