Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4737387
  • 博文数量: 206
  • 博客积分: 5240
  • 博客等级: 大校
  • 技术积分: 3224
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 21:40
文章分类

全部博文(206)

文章存档

2013年(13)

2012年(8)

2011年(33)

2010年(152)

我的朋友

分类:

2010-08-20 19:23:47

原版拷贝模拟精灵win.exit关机函数



ExitWindowsEx = ::User32.api("ExitWindowsEx","int(int uFlags,pointer dwReserved)")
SetSystemPowerState = ::Kernel32.api("SetSystemPowerState","int(int fSuspend,int fForce)")

import win;
win.exitWindow = function( mode ){
    if(! setprivilege("SeShutdownPrivilege",true) )
    return false;
    
    
    var result;
    
    select(mode){
        case 0 {
            thread.stop();
        }
        case 1 {
            //关机

            result = ExitWindowsEx(0x1/*_EWX_SHUTDOWN*/| 0x00000008/*_EWX_POWEROFF*/ |0x4/*_EWX_FORCE*/ );
            ApeConfig.ExitApplication();
        }
        case 2 {
            //重启

            result = ExitWindowsEx(0x2/*_EWX_REBOOT*/|0x4/*_EWX_FORCE*/ );
            ApeConfig.ExitApplication();
        }
        case 3 {
            //注销

            result = ExitWindowsEx(0x0/*_EWX_LOGOFF*/|0x4/*_EWX_FORCE*/);
        }
        case 4 {
            //待机

            result = SetSystemPowerState( 1, 1);
        }
        else {
            //休眠

            result = SetSystemPowerState( 0, 0 );
        }
    
    }
    
    return result ;
}


阅读(707) | 评论(0) | 转发(1) |
0

上一篇:问题参考

下一篇:call的用法

给主人留下些什么吧!~~