192上位机VC MFC实现电脑的重启关机注销功能.jpg (9.09 KB, 下载次数: 0)

192上位机VC MFC实现电脑的重启关机注销功能

2016-1-29 21:26 上传

192上位机VC MFC实现电脑的重启关机注销功能

功能展示

自己电脑的关机注销重启可以通过鼠标来操作完成也可以通过代码编程控件,比如很多软件安装完成后都有重启电脑功能,我们当前例程也自己编程实现电脑的关机,重启,注销功能,效果如图。由于功能原因无法程序演示及录制教程,可以下载例程运行看效果;

要点提示

电脑的关机重启及注销只要调用一个函数ExitWindowsEx()便可,但个别系统还得合应用程序获得相关权限才能实现这些功能,比如微软的2000系统。所以为使功能健全,我们还得调用OpenProcessToken()LookupPrivilegeValue() AdjustTokenPrivileges()三个函数,获得实现这三功能的操作权限;

ExitWindowsEX()函数用来退出、重启或注销系统;

函数原型编辑 1.BOOLExitWindowsEx(

UINT uFlags, // 关闭参数

DWORD dwReserved // 系统保留,一般取0

参数编辑

uFlags

指定关闭的类型。此参数必须有下列值的组合:

EWX_FORCE

强制终止进程。当此标志设置,Windows不会发送消息WM_QUERYENDSESSION和WM_ENDSESSION的消息给目前在系统中运行的程序。这可能会导致应用程序丢失数据。因此,你应该只在紧急情况下使用此标志。

EWX_LOGOFF

关闭所有进程,然后注销用户。

EWX_POWEROFF

关闭系统并关闭电源。该系统必须支持断电。

Windows要求:

Windows NT中调用进程必须有 SE_SHUTDOWN_NAME 特权。

Windows 9X中:可以直接调用。

EWX_REBOOT

关闭系统,然后重新启动系统。

Windows要求:

Windows NT中:调用进程必须有SE_SHUTDOWN_NAME特权。

Windows 9X中:可以直接调用。

EWX_SHUTDOWN

关闭系统,安全地关闭电源。所有文件缓冲区已经刷新到磁盘上,所有正在运行的进程已经停止。

Windows要求:

Windows NT中:调用进程必须有SE_SHUTDOWN_NAME特权。

Windows 9X中:可以直接调用。

dwReserved

系统保留,这参数被忽略。一般取0。

返回值:如果函数成功,返回值为非零。如果函数失败,返回值是零。想获得更多错误信息,请调用GetLastError()函数

2.OpenProcessToken函数用来打开与进程相关联的访问令牌

函数原型:BOOLOpenProcessToken(

__in HANDLE ProcessHandle, //要修改访问权限的进程句柄

__in DWORD DesiredAccess, //指定你要进行的操作类型

__out PHANDLE TokenHandle);//返回的访问令牌指针

第一参数是要修改访问权限的进程句柄;第三个参数就是返回的访问令牌指针;第二个参数指定你要进行的操作类型,如要修改访问令牌的特权,我们要指定第二个参数为TOKEN_ADJUST_PRIVILEGES = &H20(其它一些参数可参考Platform SDK)。通过这个函数我们就可以得到当前进程的访问令牌的句柄(指定函数的第一个参数为GetCurrentProcess()就可以了)。

3. 函数原型:BOOL LookupPrivilegeValue(LPCTSTRlpSystemName,LPCTSTR lpName,PLUID lpLuid);

第一个参数表示所要查看的系统,本地系统直接用NULL

第二个参数指向一个以零结尾的字符串,指定特权的名称,如在WinNT h头文件定义。例如,此参数可指定常数,se_security_name,或其对应的字符串,“sesecurityprivilege ";。

第三个参数用来接收所返回的制定特权名称的信息

4. AdjustTokenPrivileges ()这个函数启用或禁止指定访问令牌的特权。

启用或禁用特权一个有TOKEN_ADJUST_PRIVILEGES访问的访问令牌.

BOOL AdjustTokenPrivileges(

HANDLE TokenHandle, //包含特权的句柄

BOOL DisableAllPrivileges,//禁用所有权限标志

PTOKEN_PRIVILEGES NewState,//新特权信息的指针(结构体)

DWORD BufferLength, //缓冲数据大小,以字节为单位的PreviousState的缓存区(sizeof)

PTOKEN_PRIVILEGES PreviousState,//接收被改变特权当前状态的Buffer

PDWORD ReturnLength //接收PreviousState缓存区要求的大小

参数

kenHandle:包含要修改特权的访问令牌的标识(句柄).这个句柄必须有TOKEN_ADJUST_PRIVILEGES访问令牌.如果PreviousState不是NULL,这个句柄还必须有TOKEN_QUERY访问特权.

DisableAllPrivileges:标志这个函数是否禁用该令牌的所有特权.如果为TRUE,这个函数禁用所有特权,NewState参数无效.如果为假,以NewState参数指针的信息为基础来修改特权.

NewState:一个TOKEN_PRIVILEGES结构体的指针指定了一组特权和他们的属性.

如果参数DisableAllPrivileges为FALSE,AdjustTokenPrivileges 启用或禁用这些令牌的特权.

如果你给一个特权设置了SE_PRIVILEGE_ENABLED的属性,这个函数将启动特权,否则禁用特权.

如果DisableAllPrivileges为TRUE,这个参数无效.

BufferLength:标志参数PreviousState指针以字节大小缓存区(sizeof).

如果参数PreviousState是NULL,这个参数可以为NULL.

PreviousState:这个函数填充一个TOKEN_PRIVILEGES结构体它包括该函数修改之前任何特权状态.这个参数可以为NULL.

如果指定的缓冲区太小,无法收到完整的修改权限列表,这个函数失败并不会修改任何特权.

这个函数设置了一个 拥有修改权限完成列表参数ReturnLength的字节数 的指针变量[结果的Buffer]

ReturnLength:接收 参数PreviousState的缓存区指针的 字节大小 的 变量指针(长度指针).

如果PreviousState为NULL,这个参数可以为NULL

实现功能

1.新建基于对话框的应用程序

2.拖拽关机,重启,注销三个按钮关联函数,再添加自定义函数GetPrivilege()在程序初始化时调用此函数进行提权操作;

void CGkbc8Dlg::GetPrivilege()//获得权限

{

static HANDLE hToken;

static TOKEN_PRIVILEGES tp;

static LUID luid;

OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);

LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);

tp.PrivilegeCount =1;

tp.Privileges [0].Luid =luid;

tp.Privileges [0].Attributes =SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(TOKEN_PRIVILEGES),NULL, NULL);

}

void CGkbc8Dlg::OnShutdown() //关机

{ExitWindowsEx(EWX_POWEROFF,0);}

void CGkbc8Dlg::OnReboot() //重启

{ExitWindowsEx(EWX_REBOOT,0);}

void CGkbc8Dlg::OnLogoff() //注销

{ExitWindowsEx(EWX_LOGOFF,0);}复制代码

例程功能特殊无法视频演示,学者可自行运行程序查看效果及学习代码功能

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:192.上位机VC MFC实现电脑的重启关机注销功能.rar

文件大小:152.61 KB

售价:10金币

下载权限: 不限以上或 VIP会员

[购买VIP]

[充值积分]

您的支持是我们创作的动力!

您可花点闲钱积分自助任意充值

全站资源任意下载永久更新!

vc控制计算机关机,192上位机VC MFC实现电脑的重启关机注销功能相关推荐

  1. 最简单DIY基于ESP32CAM的物联网相机系统⑥(用上位机VS2013 MFC实现WIFI图传)

    第一篇:最简单DIY基于ESP32CAM的物联网相机系统①(用网页实现拍照图传) 第二篇:最简单DIY基于ESP32CAM的物联网相机系统②(在JAVAWEB服务器实现图片查看器) 第三篇:最简单DI ...

  2. LabVIEW开发的上位机界面在其它电脑分辨率下-界面窗口偏移显示问题解决

    目录 问题: 分析: 解决方式 1)编辑前面板边界适配对应的分辨率 2)编辑前面板窗口-窗口边界 3)编辑前面板窗口-保持窗口比例 4)设置VI属性--窗口运行时位置居中显示 参考 问题: 在基于La ...

  3. 计算机关机键消失了,如何解决Windows7电脑中的关机键不见了

    一般我们在将电脑关机的时候不会直接那个开关机电源键,而是会在电脑上面点击关机键进行关机,这样对电脑也比较好,可是有不少的用户发现电脑的关机键不见了,导致无法关机,这样要怎么办呢?本文会为大家详细介绍如 ...

  4. 计算机定时开机关机设置,电脑定时开关机,小编教你怎么设置电脑定时开关机...

    我们有的时候是非常懒得等开机的那段过程的,因为等的过程有点无聊.所以都会选择设置电脑定时开关机,这样的话我们就不用特地等啦.那么今天小编就来告诉你们怎么设置电脑定时开关机. 如果说我其实之前是不知道电 ...

  5. 简单易用的运动控制卡(一):硬件接线和上位机开发

    今天,正运动小助手给大家分享一下运动控制卡之ECI3808的硬件接线和如何进行MFC的上位机开发. 一 .ECI3808硬件介绍 1.功能介绍 ECI3808系列控制卡支持最多达 12 轴直线插补.任 ...

  6. 最简单DIY基于ESP32CAM的物联网相机系统⑤(用C#上位机实现串口图传)

    第一篇:最简单DIY基于ESP32CAM的物联网相机系统①(用网页实现拍照图传) 第二篇:最简单DIY基于ESP32CAM的物联网相机系统②(在JAVAWEB服务器实现图片查看器) 第三篇:最简单DI ...

  7. STM32 MPU6050与匿名上位机通讯(V2.6版)

    0.系列目录 STM32 软件模拟IIC STM32 使用DMP库处理MPU6050数据 STM32 MPU6050与匿名上位机通讯(V2.6版) 1.简介 在四轴的调试中,经常要使用地面站与飞控之间 ...

  8. A_A07_003 AS608指纹模块上位机软件使用

    A_A07_003 AS608指纹模块上位机软件使用 一.软件获取 二.测试用模块与接线 三.上位机界面分块和功能 1.指纹图像显示区域 2.硬件信息 3.打开设备 4.设备配置 5.信息显示 6.图 ...

  9. 【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

    随着机器人技术的不断发展,我们可以在许多简单重复,危险的岗位上看到机器人的身影,移动机器人凭借其在复杂环境下工作,具有自行感知.自行规划.自我决策功能的能力,它可以在不同的环境中移动并执行任务,在人类 ...

最新文章

  1. 理解HTTP消息头【很完整,例子也很丰富】
  2. 让大规模深度学习训练线性加速、性能无损,基于BMUF的Adam优化器并行化实践...
  3. 程序员转型AI,这里有最全的机器学习介绍+应用实例
  4. 【 MATLAB 】Signal Processing Toolbox Functions - By Category
  5. 棋魂桌面壁纸图片|大火影视壁纸找高图
  6. 打王者、调小酒、搭乐高,大厂女程序员的别样人生!
  7. electron 多语言_Electron实用技巧electronbuilder中用户协议(license)的使用及多语言支持...
  8. 新H5手机微商城运营源码 简约轻量版
  9. 太实用了!Schedule模块, Python 周期任务神器!
  10. day55-负载均衡之lvs
  11. python 马赛克拼图_用几十万张图片来拼图!Open CV牛逼不是没有道理的!马赛克拼图...
  12. 刘晓艳老师的考研单词记忆
  13. oracle给表更名,Oracle重命名表
  14. 360漏洞响应平台(SRC)为白帽子挑选的10本互联网安全好书
  15. android 输入法,里面还集成语音输入
  16. 益企工程云签约明远建设 助力企业降本增效
  17. Windows 注册和取消注册一个dll或者ocx
  18. 6-7 日期-求当年天数
  19. 用Spring Security做分布式权限管理 - 卷一基本功
  20. Photozoom图像放大的技术一二事

热门文章

  1. 硅烷聚乙二醇硅烷,Silane-PEG-Silane同官能团科研试剂,化学结构式
  2. 非常详细的FastDFS整合springBoot教程-带文件下载地址
  3. TCP 协议(序号和确认号)
  4. java pdf 签名_java – PDFBox 1.8.10:填充和签名PDF生成无效签名
  5. 使用Tand自动化您的机器学习工作流程
  6. 51单片机课程设计《三路步进电机控制》
  7. 神箭手 美国亚马逊_亚马逊会摧毁美国的购物中心吗?还是会拯救它们?
  8. 用友系统客户端登录不上服务器,图文详解用友客户端连不上服务器解决方法.pdf...
  9. springboo+elasticsearch+经纬度查询
  10. Zemax操作35--双高斯镜头优化