Heim >Backend-Entwicklung >Golang >So schreiben Sie ein geplantes Herunterfahren des Fensters in Golang
eingeführte Tutorialspalte, um Golang vorzustellen, wie man ein Fenster regelmäßig herunterfährt. Ich hoffe, es wird den Freunden, die es brauchen, hilfreich sein!
Der Code lautet wie folgt:package mainimport ( "flag" "fmt" "github.com/robfig/cron" "time")import ( . "github.com/CodyGuo/win")var ( arg string)func init() { flag.StringVar(&arg, "uFlags", "shutdown", "shutdown logoff reboot")}func main() { flag.Parse() c := cron.New(cron.WithSeconds()) c.AddFunc("0 40 18 * * ?", shutdown) c.Start() select {} switch arg { case "logoff": logoff() case "reboot": reboot() case "shutdown": shutdown() default: fmt.Println("您输入的参数有误.") }}func Test(){ fmt.Println(time.Now())}func logoff() { ExitWindowsEx(EWX_LOGOFF, 0)}func reboot() { getPrivileges() ExitWindowsEx(EWX_REBOOT, 0)}func shutdown() { getPrivileges() ExitWindowsEx(EWX_SHUTDOWN, 0)}func getPrivileges() { var hToken HANDLE var tkp TOKEN_PRIVILEGES OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken) LookupPrivilegeValueA(nil, StringToBytePtr(SE_SHUTDOWN_NAME), &tkp.Privileges[0].Luid) tkp.PrivilegeCount = 1 tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED AdjustTokenPrivileges(hToken, false, &tkp, 0, nil, nil)}cron-Ausdruck
c.AddFunc("0 40 18 * * ?", shutdown)
Das obige ist der detaillierte Inhalt vonSo schreiben Sie ein geplantes Herunterfahren des Fensters in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!