ASP.NET關(guān)機代碼(Windows為本機)
作者:resoar 
  本文列出了ASP.NET的關(guān)機代碼的關(guān)機代碼,希望對大家有所幫助。
 編寫.NET關(guān)機代碼,首先導入這個命名空間using System.Runtime.InteropServices;
這個是關(guān)閉本機的代碼,比如說程序是放在服務(wù)器上,那么關(guān)閉的是Server,而不是客戶端。
以下.NET關(guān)機代碼針對windows
- using System;
 - using System.Data;
 - using System.Configuration;
 - using System.Web;
 - using System.Web.Security;
 - using System.Web.UI;
 - using System.Web.UI.WebControls;
 - using System.Web.UI.WebControls.WebParts;
 - using System.Web.UI.HtmlControls;
 - using System.Runtime.InteropServices;
 - public partial class _Default : System.Web.UI.Page
 - {
 - protected void Page_Load(object sender, EventArgs e)
 - {
 - DoExitWin(EWX_SHUTDOWN);
 - }
 - [StructLayout(LayoutKind.Sequential, Pack = 1)]
 - internal struct TokPriv1Luid
 - {
 - public int Count;
 - public long Luid;
 - public int Attr;
 - }
 - [DllImport("kernel32.dll", ExactSpelling = true)]
 - internal static extern IntPtr GetCurrentProcess();
 - [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]
 - internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);
 - [DllImport("advapi32.dll", SetLastError = true)]
 - internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid);
 - [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]
 - internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall,
 - ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen);
 - [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
 - internal static extern bool ExitWindowsEx(int flg, int rea);
 - internal const int SE_PRIVILEGE_ENABLED = 0x00000002;
 - internal const int TOKEN_QUERY = 0x00000008;
 - internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;
 - internal const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
 - internal const int EWX_LOGOFF = 0x00000000;
 - internal const int EWX_SHUTDOWN = 0x00000001;
 - internal const int EWX_REBOOT = 0x00000002;
 - internal const int EWX_FORCE = 0x00000004;
 - internal const int EWX_POWEROFF = 0x00000008;
 - internal const int EWX_FORCEIFHUNG = 0x00000010;
 - private static void DoExitWin(int flg)
 - {
 - bool ok;
 - TokPriv1Luid tp;
 - IntPtr hproc = GetCurrentProcess();
 - IntPtr htok = IntPtr.Zero;
 - ok = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok);
 - tp.Count = 1;
 - tp.Luid = 0;
 - tp.Attr = SE_PRIVILEGE_ENABLED;
 - ok = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid);
 - ok = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);
 - ok = ExitWindowsEx(flg, 0);
 - }
 - }
 
以上就是.NET關(guān)機代碼。
【編輯推薦】
- ASP.NET DetailsView中顯示選中產(chǎn)品的詳細信息
 - ASP.NET 2.0數(shù)據(jù)教程:GridView選擇行
 - ASP.NET 2.0數(shù)據(jù)教程:GridView顯示數(shù)據(jù)
 - ASP.NET 2.0中添加GridView到頁面
 - 新增ASP.NET頁面時的注意事項
 
責任編輯:book05 
                    來源:
                    cnblogs
 














 
 
 
 
 
 
 