MFC-关机注销重启
2016-03-29 13:56
357 查看
关机注销重启都是windows的重要操作,所以调用ExitWindowsEx这个函数之前一定要对当前进程进行提权,就是提升权限,使得当前的进程能操作这些重要的函数.
1.提权
2.关机
3.注销
4.重启
5.还有很多的操作,只要对其进行提权就可以了.
1.提权
//提权函数 BOOL AdjustPrivilege() { BOOL bRet = FALSE; TOKEN_PRIVILEGES tp = { 0 };//令牌权限结构 HANDLE hToken = nullptr;//令牌句柄 do { //打开当前进程令牌,并且获取它 //令牌权限修改和查询 if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES| TOKEN_QUERY,&hToken)) break; //获取关机注销重启的LUID(Locally Unique Identifier),局部唯一标识 if (!LookupPrivilegeValue(nullptr,SE_SHUTDOWN_NAME,&tp.Privileges[0].Luid)) break; tp.PrivilegeCount = 1;//修改权限的个数 tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;//激活SE_SHUTDOWN_NAME这个权限 //提升权限//FALSE表示可以修改权限//把需要修改的权限传进来 if(!AdjustTokenPrivileges(hToken,FALSE,&tp,0,(PTOKEN_PRIVILEGES)nullptr,0)) break; bRet = TRUE; } while (FALSE); if (hToken) CloseHandle(hToken); return bRet; }
2.关机
//提权 AdjustPrivilege(); ExitWindowsEx(EWX_SHUTDOWN,0);
3.注销
//提权 AdjustPrivilege(); ExitWindowsEx(EWX_LOGOFF, 0);
4.重启
//提权 AdjustPrivilege(); ExitWindowsEx(EWX_REBOOT, 0);
5.还有很多的操作,只要对其进行提权就可以了.
相关文章推荐
- 深入理解OpenGL拾取模式(OpenGL Picking)
- 完整SQL分页存储过程(支持多表联接)
- 深入理解CSS弹性盒模型flex
- Comparable与Comparator
- hadoop使用场景
- HTML使用列表
- 学习osv原理需要操作系统启动流程
- 蓝桥杯系统题集部分(带java版参考答案)
- 本地不安装Oracle,plsql远程连接数据库
- 多线程:下载图片(不用SDWebImage)
- HDU 2553 N皇后问题(还是DFS呀)
- JVM介绍
- MySQL参数优化及基础操作
- 文件夹下的文件遍历-python
- 添加xcode插件时,如果手误点击了"Skip Bundle" 肿么办?xcode 插件
- [LeetCode] Factor Combinations 因子组合
- 学习嵌入式linux开发板之iTOP-4412 开发板如何操作GPIO
- CoordinatorLayout、Toolbar、CollapsingToolbarLayout、AppBarLayout和NestedScrollView组合滑动折叠或拉伸Toolbar的demo
- Socket.io发送消息含义
- scala发送消息到kafka示例