首页后端开发其他后端知识golang可不可以控制window定时关机,应该如何操作

golang可不可以控制window定时关机,应该如何操作

时间2024-03-27 20:46:03发布访客分类其他后端知识浏览1528
导读:关于“golang可不可以控制window定时关机,应该如何操作”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“go...
关于“golang可不可以控制window定时关机,应该如何操作”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“golang可不可以控制window定时关机,应该如何操作”吧。

下面由golang教程栏目给大家介绍golang编写一个window定时关机 ,希望对需要的朋友有所帮助!

代码如下:

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表达式

c.AddFunc("0 40 18 * * ?", shutdown)

以上就是关于“golang可不可以控制window定时关机,应该如何操作”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

golang

若转载请注明出处: golang可不可以控制window定时关机,应该如何操作
本文地址: https://pptw.com/jishu/654468.html
HTML5中WebSocket是什么,有何用处 HTML5能做什么,常见的应用有哪一些

游客 回复需填写必要信息