详细点,谢谢,本人比较笨
另外能推荐几本有关的书或者章节更好
【C#】WinForm中如何实现自动关机
答案:3 悬赏:0
解决时间 2021-11-08 01:29
- 提问者网友:若相守£卟弃
- 2021-11-07 03:25
最佳答案
- 二级知识专家网友:狠傷凤凰
- 2021-11-07 03:47
可以调用WIN API
///
/// ExitWindowEx函数要么注销当前用户,关闭系统, 要么关闭系统然后重新启动. 它发送 WM_QUERYENDSESSION 给所有的应用程序,决定是否可以停止它们的操作.
///
/// 指定关闭的类型.
/// 该参数忽略.
///如果执行成功,返回非0.
如果执行失败,返回0. 如果要获取更多的错误信息, 请调用 Marshal.GetLastWin32Error.
[ DllImport( "user32.dll", EntryPoint="ExitWindowsEx", CharSet=CharSet.Ansi )]
private static extern int ExitWindowsEx(int uFlags, int dwReserved);
之后在定时器里还是什么里实现那就是你的事了
你可以写成一个服务,之后判断时间
///
/// ExitWindowEx函数要么注销当前用户,关闭系统, 要么关闭系统然后重新启动. 它发送 WM_QUERYENDSESSION 给所有的应用程序,决定是否可以停止它们的操作.
///
/// 指定关闭的类型.
/// 该参数忽略.
///
如果执行失败,返回0. 如果要获取更多的错误信息, 请调用 Marshal.GetLastWin32Error.
[ DllImport( "user32.dll", EntryPoint="ExitWindowsEx", CharSet=CharSet.Ansi )]
private static extern int ExitWindowsEx(int uFlags, int dwReserved);
之后在定时器里还是什么里实现那就是你的事了
你可以写成一个服务,之后判断时间
全部回答
- 1楼网友:深街酒徒
- 2021-11-07 06:24
我暂时保留我的看法!
- 2楼网友:野性且迷人
- 2021-11-07 05:23
[DllImport("user32.dll", EntryPoint = "ExitWindowsEx", CharSet = CharSet.Ansi)]
private static extern int ExitWindowsEx(int uFlags, int dwReserved);
用Timer定时器
//关机程序
private void ShutDown()
{
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "cmd.exe";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.StartInfo.RedirectStandardError = true;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();//启动进程
myProcess.StandardInput.WriteLine("shutdown -s -t 0");//执行关机命令
}
书籍:C#开发宝典,或者google搜索
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯