VC++简单实现关机、重启计算机实例代码_C 语言

本文以一个实例形式介绍了VC++简单实现关机、重启计算机的方法,代码比较实用,有一定的参考价值。完整实例代码如下:

void CWebBrowserView::OnMenuShutdown()
{
 // TODO: 在此添加命令处理程序代码
 if (AfxMessageBox("确定要关机吗?",MB_YESNO) == IDYES)
 {
 HANDLE hToken;
 TOKEN_PRIVILEGES tkp;
 // Get a token for this process.
 if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
 {
  AfxMessageBox("OpenProcessToken Error!");
  return;
 }
 // Get the LUID for the shutdown privilege.
 LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
 tkp.PrivilegeCount = 1; // one privilege to set
 tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
 // Get the shutdown privilege for this process.
 AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES)NULL, NULL);
 if (GetLastError() != ERROR_SUCCESS)
 {
  AfxMessageBox("关机失败");
  return;
 }
 // Shut down the system and force all applications to close.
 ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0); //重启只需要把EWX_SHUTDOWN改为EWX_REBOOT
 }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索vc++
, 关机
重启
vc mfc简单实例、vc socket编程实例、vc串口通信实例、vc6.0 mfc实例教程、vc mfc编程实例,以便于您获取更多的相关知识。

时间: 2022-12-21

VC++简单实现关机、重启计算机实例代码_C 语言的相关文章

VC++植物大战僵尸中文版修改器实现代码_C 语言

本文实例讲述了VC++植物大战僵尸中文版修改器实现代码.分享给大家供大家参考.具体分析如下: 这是很简单的一个辅助工具,关键是游戏数据的分析,实现了两个功能,无限阳光和无冷却.特别注意的一下,如果用VS2008编译的话,调试的时候是正常的,但编译后功能就会失效,这是因为OpenProcess权限的问题,需要提权,在VC6下是正常的. void CzhiwuDlg::OnBnClickedButton1() { //无限阳光代码 HWND hJubing; DWORD lID; DWORD bas

C++简单QQ程序服务器端的实现代码_C 语言

本文实例为大家分享了C++简单QQ程序服务器端的实现代码,供大家参考,具体内容如下 // ServerDlg.cpp : implementation file // #include "StdAfx.h" #include "Server.h" #include "ServerDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] =

C++实现简单的职工管理系统实训代码_C 语言

本文实例为大家分享了C++职工管理系统实例代码 1.单个职工的头文件staff.h  #ifndef STAFF_H_INCLUDED #define STAFF_H_INCLUDED //结构体创建 struct staff { char ID[10]; char name[10]; char sex[10]; int pay; int reward; int factpay; }; //自定义结构体 typedef struct staff staff; //单个职工信息创建 staff C

使用C++的string实现高精度加法运算的实例代码_C 语言

对于超大数字的运算,用long long int仍然不能解决,这时候就需要考虑通过模拟运算和数组存储来实现高精度运算. 本文讨论借助C++的string来实现高精度的运算. 首先输入的量直接存储为string,设为s1和s2. 接下来设计一个反转函数,用于把整个字符串反转(为了方便后续计算). string reverseStr(string input){ string output = ""; for(int i = 0; i < input.length(); i++){

C语言之实现控制台光标随意移动的实例代码_C 语言

原理引入windows.h,首先是要获得输入的东西,然后通过判断: 1.方向键:执行上下左右的移动功能 2 .回车键:执行换行的功能. 3.普通键:输入功能. 终点就是要获取到屏幕上的坐标,当按下了方向键以后,坐标值+1,或者减一,从而实现了光标的自由移动. //C语言实现控制台中光标随意移动 #include <stdio.h> #include <windows.h> #include <conio.h> HANDLE hout; //获得输入 char getIn

VC获取当前路径及程序名的实现代码_C 语言

一.获取当前运行目录的绝对路径 1.使用GetCurrentDirectory函数 假设程序路径为D:\Test\tst.exe,执行GetCurrentDirectory函数 char pBuf[MAX_PATH]; GetCurrentDirectory(MAX_PATH,pBuf); pBuf="D:\Test" 但是如果使用CFileDialog.CFile::Open等函数后,设置不当则会导致再次获取当前路径值改变.所以,如要避免当前路径改变,如果使用CFileDialog,

C 语言快速排序实例代码_C 语言

快速排序是对冒泡法排序的一种改进. 快速排序算法 的基本思想是:将所要进行排序的数分为左右两个部分,其中一部分的所有数据都比另外一 部分的数据小,然后将所分得的两部分数据进行同样的划分,重复执行以上的划分操作,直 到所有要进行排序的数据变为有序为止. 可能仅根据基本思想对快速排序的认识并不深,接下来以对n个无序数列A[0], A[1]-, A[n-1]采用快速排序方法进行升序排列为例进行讲解. (1)定义两个变量low和high,将low.high分别设置为要进行排序的序列的起始元素和最后一个元

C++ string 字符串查找匹配实例代码_C 语言

在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法.而对于C++的string,我们往往会用到find(). C++:#inlcude<string> C: #include<string.h> find():在一个字符串中查找一个指定的单个字符或字符数组.如果找到,就返回首次匹配的开始位置:如果没有查找到匹配的内容,就返回string::npos. find_first_of():在一个目标串

C++ 继承详解及实例代码_C 语言

C++继承可以是单一继承或多重继承,每一个继承连接可以是public,protected,private也可以是virtual或non-virtual.然后是各个成员函数选项可以是virtual或non-virtual或pure virtual.本文仅仅作出一些关键点的验证. public继承,例如下: 1 class base 2 {...} 3 class derived:public base 4 {...} 如果这样写,编译器会理解成类型为derived的对象同时也是类型为base的对象