求windows关机代码(C#)

werwsxwdfwdc 2004-12-28 07:43:50
求windows关机代码(C#)
...全文
202 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码蜗牛sky 2004-12-28
  • 打赏
  • 举报
回复
namespace ShutDownTest {


using System; 

using System.Drawing; 

using System.Collections; 

using System.ComponentModel; 

using System.Windows.Forms; 

using System.Data; 

using System.Runtime.InteropServices; 

using System.Security.Principal;


[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]

public struct LUID

{

  public uint LowPart;

  public uint HighPart;

};


[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]

public struct TOKEN_PRIVILEGES

{

  public uint PrivilegeCount;

  public LUID Luid;

  public uint Attributes;

};


public class PlatformImport 

{ 

  [DllImport("advapi32", CharSet=CharSet.Auto)]

  public static extern bool LookupPrivilegevalue (string sysname,string privname,ref LUID luid);


  [DllImport("advapi32", CharSet=CharSet.Auto)]

  public static extern bool AdjustTokenPrivileges(IntPtr handle, bool dsall,ref TOKEN_PRIVILEGES newstate,int len, IntPtr oldstate,IntPtr retlen);


  [DllImport("kernel32.dll")] 

  public static extern int GetLastError(); 

  

  [DllImport("user32.dll")] 

  public static extern bool ExitWindowsEx(int uFlags, int dwReason); 

} 


public class Form1 : Form 

{ 

  private Button button1; 


  public Form1() 

  { 


   this.button1 = new System.Windows.Forms.Button(); 

   this.SuspendLayout(); 


   this.button1.Location = new Point(136, 112); 

   this.button1.Name = "button1"; 

   this.button1.Size = new Size(80, 24); 

   this.button1.TabIndex = 0; 

   this.button1.Text = "Shut Down"; 

   this.button1.Click += new EventHandler(this.button1_Click); 


   this.AutoScaleBaseSize = new Size(6, 14); 

   this.ClientSize = new Size(292, 273); 

   this.Controls.Add(button1); 

   this.Name = "Form1"; 

   this.Text = "shutdown test"; 

   this.ResumeLayout(false); 

  } 


  [STAThread] 

  static void Main() 

  { 

   Application.Run(new Form1()); 

  } 


  private void button1_Click(object sender, System.EventArgs e) 

  { 

   WindowsIdentity identity = WindowsIdentity.GetCurrent();

   IntPtr token = identity.Token;

   IntPtr luid = (IntPtr)0;

   IntPtr previousState = (IntPtr)0;

   IntPtr previousStateLength = (IntPtr)0;

   LUID privilegeId = new LUID ();

   PlatformImport.LookupPrivilegevalue ("", "SeShutdownPrivilege", ref privilegeId);

   
   TOKEN_PRIVILEGES privileges = new TOKEN_PRIVILEGES();

   privileges.PrivilegeCount = 1;

   privileges.Luid = privilegeId;

   privileges.Attributes = 2;

   PlatformImport.AdjustTokenPrivileges (token, false, ref privileges, Marshal.SizeOf(privileges), previousState, previousStateLength);


   if (PlatformImport.GetLastError() != 0) return; 


   if(!(PlatformImport.ExitWindowsEx(0x01 | 0x04, 0))) return;

  }

} 

}
lucbesson 2004-12-28
  • 打赏
  • 举报
回复
http://search.csdn.net/Expert/topic/2542/2542604.xml?temp=.6864282
antoniusguo 2004-12-28
  • 打赏
  • 举报
回复
这是什么?
document.write("\n"); document.write("\n"); document.write(""); ???
我也很想知道
nga96 2004-12-28
  • 打赏
  • 举报
回复
兄弟我收藏过,可惜一下找不到,晕死
兔子-顾问 2004-12-28
  • 打赏
  • 举报
回复
document.write("\n"); document.write("\n"); document.write(""); ???
楼上的哥们。给的是啥?
kqh0319 2004-12-28
  • 打赏
  • 举报
回复
http://universalmccannafa.allyes.com/main/adfshow?user=universalmccann|csdn|Homepage_Fullcolum_770_90&db=universalmccannafa&border=0&local=yes&js=ie

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧