windows XP存在关机过程卡死的BUG。下面这个程序可以解决这个问题。

代码1

 1 #include <WINDOWS.H>
 2
 3 #define ISTATUS BOOL
 4 #define ISTATUS_SUCCEED TRUE
 5 #define ISTATUS_FAILED FALSE
 6
 7 ISTATUS WINAPI LoadPrivilege(LPTSTR Privilege)
 8 {
 9     HANDLE     hToken = NULL, hProcessHandle = NULL;
10     LUID     SEDebugNameValue;
11     TOKEN_PRIVILEGES  tkp;
12     BOOL     retVal = ISTATUS_SUCCEED;
13     hProcessHandle=GetCurrentProcess();
14     if(!hProcessHandle)
15     {
16         retVal = ISTATUS_FAILED;
17         goto cleanup;
18     }
19     if(!OpenProcessToken(hProcessHandle, TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken))
20     {
21         retVal = ISTATUS_FAILED;
22         goto cleanup;
23     }
24     if(!LookupPrivilegeValue(NULL, Privilege, &SEDebugNameValue))
25     {
26         retVal = ISTATUS_FAILED;
27         goto cleanup;
28     }
29     tkp.PrivilegeCount = 1;
30     tkp.Privileges[0].Luid = SEDebugNameValue;
31     tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
32     if(!AdjustTokenPrivileges(hToken, 0, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL))
33     {
34         retVal = ISTATUS_FAILED;
35         goto cleanup;
36     }
37 cleanup:
38     if(hToken != NULL) CloseHandle(hToken);
39     if(hProcessHandle != NULL) CloseHandle(hProcessHandle);
40     return retVal;
41 }
42
43 int WINAPI WinMain( HINSTANCE hInstance,
44                     HINSTANCE hPrevInstance,
45                     LPSTR lpCmdLine,
46                     int nShowCmd )
47 {
48     LoadPrivilege(SE_DEBUG_NAME);
49     if(ISTATUS_FAILED == LoadPrivilege(SE_SHUTDOWN_NAME))
50     {
51         WinExec("shutdown -s -f -t 60",  SW_SHOW);
52     }
53     if( !ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0))
54     {
55         ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
56     }
57     ExitProcess(0);
58 }

代码2(不保存用户配置直接断电,不推荐)

 1 #include <WINDOWS.H>
 2
 3 typedef UINT (CALLBACK* LPFNDLLFUNC1)(ULONG,BOOL,BOOL,int *);
 4
 5 int APIENTRY WinMain(HINSTANCE hInstance,
 6                      HINSTANCE hPrevInstance,
 7                      LPSTR     lpCmdLine,
 8                      int       nCmdShow)
 9 {
10     int en;
11     UINT nRet;
12
13     LPFNDLLFUNC1 lpfnDllFunc1;
14
15     lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(LoadLibrary("Ntdll.dll"),"RtlAdjustPrivilege");
16
17     nRet=lpfnDllFunc1(0x13,1,1,&en);
18
19     if(nRet==0x0C000007C)lpfnDllFunc1(0x13,1,0,&en);
20
21
22     GetProcAddress(LoadLibrary("Ntdll.dll"),"ZwShutdownSystem");
23     __asm
24     {
25         push 2       //ZwShutdownSystem(ShutdownPowerOff);
26             call eax
27     }
28     return 0;
29 }

转载于:https://www.cnblogs.com/Leon5/archive/2012/05/04/2482991.html

Windows XP快速关机相关推荐

  1. windows批量关机linux,Windows XP快速关机的三个小窍门--win7w.com

    即使在尝试了各种优化脚本和使用了各种优化软件之后,Windows XP仍然启动缓慢,关闭缓慢,这让人很沮丧.恐怕那些使用旧机器和笔记本电脑的人无法忍受系统启动过程如此缓慢.事实上,Windows XP ...

  2. Windows xp 定时关机命令

    Windows xp 定时关机命令 Windows XP的关机是由Shutdown.exe程序来控制的,位于Windows"System32文件夹中.如 果想让Windows 2000也实现 ...

  3. 如何实现windows XP定时关机

    Windows XP有自带的自动关机系统,看是麻烦,其实也很简单: 1.开始---运行 2.输入at 22:00 Shutdown -s 详细介绍: Windows XP的关机是由Shutdown.e ...

  4. 如何实现windows XP定时关机?

    Windows XP有自带的自动关机系统,看是麻烦,其实也很简单: 1.开始---运行 2.输入at 22:00 Shutdown -s 详细介绍: Windows XP的关机是由Shutdown.e ...

  5. Windows xp 定时关机

    Windows xp 定时关机命令Windows XP的关机是由Shutdown.exe程序来控制的,位于Windows\System32文件夹中.如 果想让Windows 2000也实现同样的效果, ...

  6. windows XP 在关机菜单中添加 休眠按钮

    待机是系统将当前状态保存于内存中,然后退出系统,此时电源消耗降低,维持CPU.内存和硬盘最低限度的运行:按计算机上的电源就可以激活系统,电脑迅速从内存中调入待机前状态进入系统,这是重新开机最快的方式, ...

  7. Windows XP下如何设置电脑定时关机

     我们在使用电脑经时,有时候会遇到一些紧急情况,需要暂时离开电脑,可是我们的电脑正在执行任务.比如下载资料.一些视频文件格式转换等等!我们知道电脑关闭还需要多长时间,也就是这些任务执行完毕还需要多长的 ...

  8. Windows XP自带的定时关机功能以及我的基于此的小程序

    (2008-06-30 15:55 博客搬家拾遗) 不知道你有没有遇到过这种情况:     吃晚饭时开始全盘扫描,到睡觉之前还显示要再有3个小时才能杀完,可是杀毒软件没有"扫描完毕自动关机选 ...

  9. 在Windows XP/2000下拒强行关机

    在Windows XP/2000下拒强行关机 从去年8月到现在,冲击波和震荡波让无数人的爱机无数次重启,折腾得要命.当然现在有了补丁,有了专杀工具,它们的威力已大大减弱.但还是常有一些人遭受它们的毒害 ...

最新文章

  1. ios MKNetworkKit 的使用
  2. Sublime Text 3包管理及插件主题安装方式
  3. 二分图最小覆盖的Konig定理及其证明
  4. JSP、EL和JSTL-学习笔记01【JSP基础语法】
  5. Web服務器的配置方法
  6. 如何自动维护全文索引和目录
  7. 中国碳酸镁铝行业市场供需与战略研究报告
  8. 中国AI公司公开击败谷歌微软,这次是Yi+AI视觉团队
  9. 计算机主机前耳机没声音,win7系统电脑前面耳机没声音怎么办
  10. 基于asp.net729在校大学生助学贷款管理系统
  11. 阿里云服务器部署ShareLaTex(Overleaf)
  12. 10分钟临时邮箱,无限邮箱
  13. python3 读文件 编码_Pyhton3下的ISO8859-1编码文件的读取
  14. opensips服务端搭建
  15. box-sizing与盒模型
  16. JavaWeb之【web站点的欢迎页面】
  17. bzoj 4987 Tree - dp
  18. 为何现在的程序员没工作动力,迷茫、中年危机普遍发生?
  19. matlab保存所有图,Matlab中图片保存的5种方法
  20. 维基百科:人人都能改写的网络百科全书

热门文章

  1. 【Java从0到架构师】MyBatis - dao
  2. ubuntu18下vnpy1.9.2的安装
  3. 从阿里腾讯的大会上得到的启示,来分享一些可视化大屏
  4. 这个工具,可视化分析10W数据后,找到了数据岗位月薪20K的秘诀
  5. python廖老师_Python3.5-20190518-廖老师-自我笔记-面向对象
  6. php 完整redis类,PHP Redis类
  7. 阻尼衰减曲线用python_阻尼的反击 | 被半篇论文爆脑两次是一种什么体验
  8. 硬盘序列号是唯一的吗_NANDrive 解决方案 微型固态硬盘设计方案
  9. oracle 序列_Oracle WebLogic最新高危反序列化漏洞修复方法
  10. linux下mysql5.7创建用户_Linux下mysql5.7 创建、删除用户与授权