C#重启服务器代码
2010-09-03 14:48
337 查看
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Runtime.InteropServices; namespace WebApplication1_advapi { /**//// <summary> /// WebForm1 的摘要说明。 /// </summary> public class WebForm1 : System.Web.UI.Page { protected const int SE_PRIVILEGE_ENABLED = 0x2; protected const int TOKEN_QUERY = 0x8; protected const int TOKEN_ADJUST_PRIVILEGES = 0x20; protected const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; protected const int EWX_LOGOFF = 0x0; protected const int EWX_SHUTDOWN = 0x1; protected const int EWX_REBOOT = 0x2; protected const int EWX_FORCE = 0x4; protected const int EWX_POWEROFF = 0x8; protected System.Web.UI.WebControls.Button Button1; protected const int EWX_FORCEIFHUNG = 0x10; [StructLayout(LayoutKind.Sequential, Pack=1)] protected struct LuidStruct { public int Count; public long Luid; public int Attr; } [DllImport("kernel32.dll", ExactSpelling=true)] protected static extern IntPtr GetCurrentProcess(); [DllImport("advapi32.dll", SetLastError=true)] protected static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok); [DllImport("advapi32.dll", SetLastError=true)] protected static extern bool LookupPrivilegeValue(string host, string name, ref long pluid); [DllImport("advapi32.dll", SetLastError=true, ExactSpelling=true)] protected static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref LuidStruct newst, int len, IntPtr prev, IntPtr relen); [DllImport("user32.dll", SetLastError=true, ExactSpelling=true)] protected static extern bool ExitWindowsEx(int flg, int rea); protected static void DoExitWindows(int flg) { LuidStruct tp; IntPtr hproc = GetCurrentProcess(); IntPtr htok = IntPtr.Zero; OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok); tp.Count = 1; tp.Luid = 0; tp.Attr = SE_PRIVILEGE_ENABLED; LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid); AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); ExitWindowsEx(flg, 0); } public static void Shutdown() { DoExitWindows(EWX_SHUTDOWN); } public static void Reboot() { DoExitWindows(EWX_REBOOT | EWX_FORCE); } public static void Logoff() { DoExitWindows(EWX_LOGOFF); } [DllImport("advapi32.dll", SetLastError=true, ExactSpelling=false)] protected static extern bool InitiateSystemShutdown(string name, string msg, int timeout, bool force, bool reboot); private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /**//// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Button1_Click(object sender, System.EventArgs e) { InitiateSystemShutdown(null,null,0,true,true); } } }
相关文章推荐
- 不通用版(从SVN取版本,通过MAVEN生成JAVA包,通过SALTSTACK传送到远程服务器并自动重启TOMCAT服务)PYTHON代码
- expect自动检测并重启另外一台服务器上的程序代码
- C# 代码如何实现让你的电脑关机,重启,注销,锁定,休眠,睡眠
- C# 简单的从服务器下载文件代码 2
- c#中关闭和重启计算机的代码
- C# FTP上传文件至服务器代码
- C# 客服端上传文件与服务器器端接收 (简单代码)
- c#代码访问https服务器以及https的webservice
- C# 从服务器下载文件代码
- pthon代码实现在linux下对siebel服务器换包重启
- c#代码访问https服务器以及https的webservice
- tomcat中使用jrebel避免修改代码重启WEB服务器
- c# 关机、注销、重启代码
- 用 C# 代码如何实现让你的电脑关机,重启,注销,锁定,休眠,睡眠
- Eclipse解决每次修改java代码或jsp代码服务器重启问题的解决办法
- C# 从服务器下载文件代码
- 提交代码到svn时服务器重启导致svn无法更新问题解决办法
- c# 数据导入到服务器上代码
- C#重启远程计算机的代码
- C# 代码重启windows服务