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 < 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");


%>

相关文章

精彩推荐