windows C++实现注销、重启、关机 logoff reboot shutdown
来源:互联网 发布:淘宝全球购店铺申请 编辑:程序博客网 时间:2024/05/16 12:51
实现这一功能很简单,主要需要调用一个系统API
ExitWindowsEx
功能就是,注销当前用户,关闭系统,或者重新启动系统。
它会发送一个WM_QUERYENDSESSION消息给所有的应用程序,让他们决定是不是可以被关闭。
函数原型
第一个参数是关闭类型,第二个是关闭的原因
第一个参数可以是:
EWX_LOGOFF
0
EWX_POWEROFF
0x00000008
EWX_REBOOT
0x00000002
EWX_RESTARTAPPS
0x00000040
EWX_SHUTDOWN
0x00000001
EWX_FORCE
0x00000004 包含这个参数可以让系统强制关机,可能会让应用程序丢失数据
EWX_FORCEIFHUNG
0x00000010
成功的话返回非0值,失败返回0
可以通过GetLastError()获得更多错误信息。
除了了解这个函数以外,我们还应该清楚:对于windows NT以上版本的操作系统,我们需要提升一个SE_SHUTDOWN权限,才能完成关机的操作。
NT一下的则不需要,例如95,98,ME
NT以上的系统包括:
Microsoft Windows 2000 (Windows NT 5.0) (1999) (2000-2010)
Microsoft Windows XP (Windows NT 5.1) (2001-2014)
Microsoft Windows Server 2003 (Windows NT 5.2) (2003-2015)
Microsoft Windows Server 2003 R2 (Windows NT 5.2) (2006-2015)
Microsoft Windows Vista (Windows NT 6.0) (2006-2017)
Microsoft Windows Server 2008 (Windows NT 6.0) (2008-2018)
Microsoft Windows 7 (Windows NT 6.1) (2009-2020)
下面我们开始具体实现:
关机功能实现
1.检查系统版本,看是不是NT以上,如果是则要提升权限
2.调用系统API,ExitWindowsEx。
提升权限的代码:调用方法:大家测试的时候一定要在虚拟机上测试,不然一运行系统熄火了岂不是很郁闷!阅读全文
0 0
- windows C++实现注销、重启、关机 logoff reboot shutdown
- Shutdown reboot logoff Windows 98/ME/XP
- 编程实现Windows关机、重启、注销
- C# 实现 Windows 关机 重启 注销
- 【LINUX】Linux 关机/重启 shutdown、halt、reboot和init
- Linux常用关机重启命令shutdown\halt\reboot\init
- linux 关机重启 shutdown和reboot的区别
- Linux 关机重启命令 shutdown reboot init
- Android6.0 关机shutdown & 重启reboot流程分析
- Linux关机重启停机(shutdown reboot halt)流程分析
- Linux 关机重启命令(logout/shutdown/reboot)
- 注册表实现windows系统的关机、注销和重启
- golang 调用win32 api 实现windows注销、重启、关机
- C#实现PC关机,注销,重启
- vc 实现关机 重启 注销
- 实现关机注销重启函数
- 关机 重启 注销
- 注销 关机 重启
- java生成全球唯一的UUID
- android使用第三方平台(蒲公英)和DownloadManager实现APP自动更新
- CSS基础(10.overflow)
- Winform图片局部放大效果
- 机房之学生查看余额
- windows C++实现注销、重启、关机 logoff reboot shutdown
- redis基础
- BarTender 通过ZPL命令操作打印机打印条码, 操作RFID标签
- YCSB部署
- android_fragment
- PL/SQL中执行存储过程的方法
- springboot04 Spring Data JPA
- UITextView 的 contentInset、textContainerInset
- 基础练习 矩阵乘法