asp.net 自动关机的代码

作者:袖梨 2022-06-25

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 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 process.start("shutdown.exe", " -s -t 0");


%>

相关文章

精彩推荐