代码片段如下:
[ DllImport("user32") ]
public static extern long ExitWindowsEx(long uFlags, long dwReserved ); //执行任务,0=注销用户,1=关机,2=重启
public bool ExecuteMission(int MissionID)
{
switch(MissionID)
{
case 0:
return ExitWindowsEx(0|0,0);
case 1:
return ExitWindowsEx(1|0,0);
case 2:
return ExitWindowsEx(2|0,0);
default:
return false;
}
}问题就是,可以注销,但重启和关机都没反应,请问哪位朋友能教教我呀,网上搜过了,都是这样写的,但我做出来为什么就没反应呢?是不是哪里写错了呀?

解决方案 »

  1.   

    [ DllImport("user32") ]
    public static extern long ExitWindowsEx(long uFlags, long dwReserved );
    上面写错了,应该是[ DllImport("user32") ]
    public static extern bool ExitWindowsEx(long uFlags, long dwReserved );
      

  2.   

    #define EWX_LOGOFF           0
    #define EWX_SHUTDOWN         0x00000001
    #define EWX_REBOOT           0x00000002
    #define EWX_FORCE            0x00000004
    #define EWX_POWEROFF         0x00000008
      

  3.   

    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.StartInfo.FileName = "shutdown";  //win98
    proc.StartInfo.Arguments = "-s -t";    // t设成关机时间 
    proc.Start();
      

  4.   

    我想用api的方式,请问如何实现呀?
      

  5.   

    孟子的代码我贴不上来,你留个email我发给你吧!
      

  6.   

    sadfleg(sadfleg) 
    你的代码在98下可以用?win2k好象都没有这个命令呀
      

  7.   

    谢谢大家,问题已经解决
    希望和大家交朋友,我的msn是:[email protected]
    我的QQ是:25945254
    我常用的邮箱是:[email protected],请问有什么方式可以和你交流呀?