监测windows状态,比如关机、开启运行、睡眠等此类。

guard_of_soul 2014-10-13 09:42:19
如题,以及控制他们开关机、休眠等。因为昨天被学长分配这任务时,没接触过没什么头绪,windows api也不熟(学长自己也不明白的,不用考虑他了),来csdn问问各位大虾,只求指个大概方向()
...全文
237 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
guard_of_soul 2014-10-13
  • 打赏
  • 举报
回复
引用 4 楼 diaodiaop 的回复:
既然是监测 那么肯定得是window服务了.. 开机好说.关机没电了你怎么检测.. select * from win32_xxoo 估计可以查询到吧...具体google下
能不能监测到用户按正要执行关机,我在这时我就想服务器发个“我要关机”的信息就行
guard_of_soul 2014-10-13
  • 打赏
  • 举报
回复
引用 2 楼 u011710947 的回复:
关机简单,还要自动开机? 4种开机方法: 1)按电源键 2)短接 3)网络唤醒(需硬件支持) 4)定时开机(需硬件支持) 你觉得哪种是你拿几段代码就能让它开机的。。。
啊,只是此类,学长就那么下达任务,我也不一定全做完。。开机不好做就先搁着吧。(忘记说了,主要还是监测吧)
by_封爱 版主 2014-10-13
  • 打赏
  • 举报
回复
既然是监测 那么肯定得是window服务了.. 开机好说.关机没电了你怎么检测.. select * from win32_xxoo 估计可以查询到吧...具体google下
於黾 2014-10-13
  • 打赏
  • 举报
回复
引用 2 楼 u011710947 的回复:
关机简单,还要自动开机? 4种开机方法: 1)按电源键 2)短接 3)网络唤醒(需硬件支持) 4)定时开机(需硬件支持) 你觉得哪种是你拿几段代码就能让它开机的。。。
如果用户关机后,顺手按了插排上的电源按钮,即使电脑有硬件支持网络开机或定时开机,也都白扯
  • 打赏
  • 举报
回复
关机简单,还要自动开机? 4种开机方法: 1)按电源键 2)短接 3)网络唤醒(需硬件支持) 4)定时开机(需硬件支持) 你觉得哪种是你拿几段代码就能让它开机的。。。
exception92 2014-10-13
  • 打赏
  • 举报
回复
重写OnFormClosing

protected override void OnFormClosing(FormClosingEventArgs e)
  {
   switch (e.CloseReason)
   {
    case CloseReason.ApplicationExitCall:
     e.Cancel = true;
     MessageBox.Show("拦截关闭要求事件!");
     break;
    case CloseReason.FormOwnerClosing:
     e.Cancel = true;
     MessageBox.Show("拦截自身关闭事件!");
     break;
    case CloseReason.MdiFormClosing:
     e.Cancel = true;
     MessageBox.Show("拦截MDI窗体关闭事件!");
     break;
    case CloseReason.None:
     break;
    case CloseReason.TaskManagerClosing:
     e.Cancel = true;
     MessageBox.Show("拦截任务管理器关闭事件!");
     break;
    case CloseReason.UserClosing:
     e.Cancel = true;
     MessageBox.Show("拦截用户关闭事件!");
     break;
    case CloseReason.WindowsShutDown:
     e.Cancel = true;
     MessageBox.Show("拦截关机事件!");
     break;
    default:
     break;
   }

   base.OnFormClosing(e);
  }


参见:http://www.cnblogs.com/ajiefj/archive/2010/05/11/1732419.html
  • 打赏
  • 举报
回复
直接搜C#关机代码就 一大堆

Process myProcess = new Process();//定义一个线程实例;
myProcess.StartInfo.FileName = "cmd.exe";//启动名为"cmd.exe"的线程,就相当于你点击电脑左下角的"开机"-"运行"-输入cmd后回车,也就是启动了命令提示符界面;
myProcess.StartInfo.UseShellExecute = false;//关闭Shell的使用
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");//相当于你在命令提示符界面输入"shutdown -s -t 0"
guard_of_soul 2014-10-13
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
重写OnFormClosing

protected override void OnFormClosing(FormClosingEventArgs e)
  {
   switch (e.CloseReason)
   {
    case CloseReason.ApplicationExitCall:
     e.Cancel = true;
     MessageBox.Show("拦截关闭要求事件!");
     break;
    case CloseReason.FormOwnerClosing:
     e.Cancel = true;
     MessageBox.Show("拦截自身关闭事件!");
     break;
    case CloseReason.MdiFormClosing:
     e.Cancel = true;
     MessageBox.Show("拦截MDI窗体关闭事件!");
     break;
    case CloseReason.None:
     break;
    case CloseReason.TaskManagerClosing:
     e.Cancel = true;
     MessageBox.Show("拦截任务管理器关闭事件!");
     break;
    case CloseReason.UserClosing:
     e.Cancel = true;
     MessageBox.Show("拦截用户关闭事件!");
     break;
    case CloseReason.WindowsShutDown:
     e.Cancel = true;
     MessageBox.Show("拦截关机事件!");
     break;
    default:
     break;
   }

   base.OnFormClosing(e);
  }


参见:http://www.cnblogs.com/ajiefj/archive/2010/05/11/1732419.html
THS for this link
slwsss 2014-10-13
  • 打赏
  • 举报
回复
引用 7 楼 guard_of_soul 的回复:
[quote=引用 2 楼 u011710947 的回复:] 关机简单,还要自动开机? 4种开机方法: 1)按电源键 2)短接 3)网络唤醒(需硬件支持) 4)定时开机(需硬件支持) 你觉得哪种是你拿几段代码就能让它开机的。。。
大虾先说说如何关机吧。。[/quote] C:\Windows\System32\shutdown.exe -s -t 0
guard_of_soul 2014-10-13
  • 打赏
  • 举报
回复
引用 2 楼 u011710947 的回复:
关机简单,还要自动开机? 4种开机方法: 1)按电源键 2)短接 3)网络唤醒(需硬件支持) 4)定时开机(需硬件支持) 你觉得哪种是你拿几段代码就能让它开机的。。。
大虾先说说如何关机吧。。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧