c++实现super F4
当它在后台运行时 可以关闭级域的黑屏锁定和全屏广播!!
希望看完可以点个赞
#include <windows.h>
#include <iostream>
#include <string>
// 键盘钩子过程
HHOOK keyboardHook;
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {
if (nCode == HC_ACTION) {
KBDLLHOOKSTRUCT* kbdStruct = (KBDLLHOOKSTRUCT*)lParam;
// 检测Ctrl+Alt+F4组合键
if (wParam == WM_KEYDOWN) {
bool ctrlPressed = GetAsyncKeyState(VK_CONTROL) & 0x8000;
bool altPressed = GetAsyncKeyState(VK_MENU) & 0x8000;
if (ctrlPressed && altPressed && kbdStruct->vkCode == VK_F4) {
// 获取前台窗口
HWND foregroundWindow = GetForegroundWindow();
if (foregroundWindow) {
DWORD processId;
GetWindowThreadProcessId(foregroundWindow, &processId);
// 强制终止进程
HANDLE process = OpenProcess(PROCESS_TERMINATE, FALSE, processId);
if (process) {
TerminateProcess(process, 0);
CloseHandle(process);
std::cout << "强制终止了当前活动窗口的进程" << std::endl;
}
}
return 1; // 阻止其他程序处理此按键
}
}
}
return CallNextHookEx(keyboardHook, nCode, wParam, lParam);
}
int main() {
std::cout << "SuperF4 已启动 - 使用 Ctrl+Alt+F4 强制终止当前活动窗口" << std::endl;
std::cout << "按 ESC 键退出程序" << std::endl;
// 设置键盘钩子
keyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, GetModuleHandle(NULL), 0);
if (keyboardHook == NULL) {
std::cerr << "无法安装键盘钩子" << std::endl;
return 1;
}
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
// 检测ESC键退出
if (GetAsyncKeyState(VK_ESCAPE) & 0x8000) {
break;
}
}
// 卸载钩子
UnhookWindowsHookEx(keyboardHook);
std::cout << "SuperF4 已退出" << std::endl;
return 0;
}
更多推荐


所有评论(0)