软件内执行关机函数,为何大多数机器可以,而有些机器却死机了?有的甚至停在"可以安全关机了"界面下?

解决方案 »

  1.   

    1.WIN95的文件VMM32.VXD坏了,挑选一个好的覆盖它就OK.
    2.WIN98中的msconfig中的高级选项是否是禁止快速关机.
    3.看看控制面板的电源管理中选择启用电源管理.
    4.还有你的机器支不支持ACPI,有些可以刷BIOS解决.如果实在不行就在BIOS中把ACPI关闭.
      

  2.   

    我想就是有的比较老的机器不支持ACPI,高级电源管理^_^
      

  3.   

    win98,win2000/xp(已调用了OpenProcessToken()等函数)都有此现象.请问"控制面板的电源管理中选择启用电源管理"是不是就是那个"电源方案:始终打开"?  但一直都是打开的阿.还有win2000好像没有"msconfig"?
    比较老的机器不支持ACPI,高级电源管理,但今年配的机器应该都支持了吧?比如技嘉81845-GV我想可能与主板有关,因为此现象大多发生在用户那里,不同单位配的机器各种各样,而软件安装的差不多,一般只额外安装word2000或wordxp等.到底又是主板的什么造成的呢?
      

  4.   

    win2000/xp也会出问题吗?是停在哪个位置了?我以前做过一个关机软件在很多2000/xp系统上试了都没有问题啊
      

  5.   

    To PiggyXP(【小猪】●你快乐于是我快乐):跟软件环境也有关
    我还没有看见过那个关机的软件能够切除NT4.0的电源的……To 楼主:
    试试该注册表,看看有没有效果:打开注册表编辑器(开始→运行→输入Regedit),找到“HKEY_LoCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon”分支,在右窗格中找到或者新建一个REG_SZ类型的注册表项,名字为“PowerdownAfterShoutdown”,双击将其值设为0(0为允许自动关闭电源功能,1为不允许自动关闭电源功能),完成后退出注册表编辑器,重新启动计算机即可。另外,除了硬件的原因,也可能是系统文件出现了问题。
      

  6.   

    实在没办法, 按照楼上所有人的建议一一试过仍是不行(包括注册表,msconfig,电源选项等). 关键是并非所有机器都不能,而只是一小部分不行, 其次是用windows自己的关机按钮都是正常的.最后是今年配的机器应该都支持ACPI.98一般停在"可以安全关机了"界面下, 2000/xp一般停在"保存设置"之前的空白界面下.
    代码如下:  HANDLE hToken;
      TOKEN_PRIVILEGES tkp;
      OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
      LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
      tkp.PrivilegeCount = 1;
      tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
      AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);
      ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
      

  7.   

    用ShellExcute调用XP下的shutdown呢,行不?