asp.net 自动关机的代码
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.text;
using system.windows.forms;
using system.runtime.interopservices;
using system.diagnostics;namespace shutdown
{
public partial class shutdownform : form
{public shutdownform()
{
initializecomponent();
}[structlayout(layoutkind.sequential)]
public struct lastinputinfo
{
public uint cbsize;
public uint dwtime;
};[dllimport("user32.dll")]
private static extern bool getlastinputinfo(ref lastinputinfo ii);
public long getidletime()
{
lastinputinfo lastinput = new lastinputinfo();
lastinput.cbsize = (uint)system.runtime.interopservices.marshal.sizeof(lastinput);if (getlastinputinfo(ref lastinput))
{
long el = lastinput.dwtime;
long ui = (environment.tickcount - el);// overflow
if (ui < 0)
ui = ui + uint.maxvalue + 1;return ui;
}
else
{
throw new applicationexception("timespan");
}}
private void timer1_tick(object sender, eventargs e)
{
if( getidletime() > 5000)
{
timer1.enabled = false;
messagebox.show("5秒到了"); //无具体意义,方便调试而已
executecmd("shutdown.exe -s -f"); //执行关机命令
}
}public void executecmd(string command)
{
process proc = new process();
proc.startinfo.filename = "cmd.exe";
proc.startinfo.useshellexecute = false;
proc.startinfo.redirectstandarderror = true;
proc.startinfo.redirectstandardinput = true;
proc.startinfo.redirectstandardoutput = true;
proc.startinfo.createnowindow = false;
proc.start();
proc.standardinput.writeline(command);
proc.standardinput.writeline("exit");
}}
}
//方法二
if lesssecond<=0 then process.start("shutdown -s -t 0")
process.start("shutdown.exe", " -s -t 0");
%>