Heim >Backend-Entwicklung >Golang >So schreiben Sie ein geplantes Herunterfahren des Fensters in Golang

So schreiben Sie ein geplantes Herunterfahren des Fensters in Golang

藏色散人
藏色散人nach vorne
2021-02-04 14:17:042476Durchsuche

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)}
So schreiben Sie ein geplantes Herunterfahren des Fensters in Golangcron-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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen