★几个关于休眠、唤醒、关机的问题★

dream_pzy 2003-08-20 11:05:18
1、如何使键盘上的“power”键失效?
2、如何编程实现“power”、“sleep”、“wake up”
3、以下代码实现“关机”功能,但是执行后出现“您可以安全的关闭计算机了”如何解决?

HANDLE hToken;
TOKEN_PRIVILEGES tkp;
DWORD dwVersion;
dwVersion = GetVersion();
if (dwVersion < 0x80000000)
{
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);
}
else
{
ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN,0);
}
...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dream_pzy 2003-08-20
  • 打赏
  • 举报
回复
换了EWX_POWEROFF好象没什么区别
换了EWX_FORCEIFHUNG 编译不通过,说没这个东东
lygfqy 2003-08-20
  • 打赏
  • 举报
回复
转贴

所有平台核心代码都是 ExitWindowsEx(UINT, DWORD) 一句。
UINT 参数可选值:
EWX_LOGOFF //注销
EWX_POWEROFF //关机并断电
EWX_REBOOT //重启
EWX_SHUTDOWN //关机,不断电
以上的选择其中一个。附加选项除
EWX_FORCE
EWX_FORCEIFHUNG //比 EWX_FORCE 更严格
同样二选一。
对于 DWORD dwReason,除 XP/.net Server family 之外其它平台都是忽略的,没有作用。
vcforever 2003-08-20
  • 打赏
  • 举报
回复
这段代码是MSDN上的原版,是不太好使
我现在还没解决,来这里关注一下
学习学习,看看高手们的解决方法
呵呵……
xiaohedou 2003-08-20
  • 打赏
  • 举报
回复
这里,有吗?急着要出去。

请收藏:有关系统的常用API(桌面,注册表,磁盘信息,关机注销,用户信息等等)

http://expert.csdn.net/Expert/topic/2134/2134696.xml?temp=.9022791

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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