脚本宝典收集整理的这篇文章主要介绍了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定时关机的详细内容,更多请关注脚本宝典其它相关文章!
以上是脚本宝典为你收集整理的golang怎么编写一个window定时关机全部内容,希望文章能够帮你解决golang怎么编写一个window定时关机所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。