专栏文章

结束极域

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minx52c7
此快照首次捕获于
2025/12/02 09:47
3 个月前
此快照最后确认于
2025/12/02 09:47
3 个月前
查看原文
CPP
#include <windows.h>
#include <string>
#include <cstdlib>
#include <thread>
#include <chrono>

void ExecuteCommand(const std::wstring& command) {
    _wsystem(command.c_str());
}

// 检查鼠标左右键是否同时按下
bool AreBothMouseButtonsPressed() {
    // 获取鼠标状态
    bool leftPressed = (GetAsyncKeyState(VK_LBUTTON) & 0x8000) != 0;
    bool rightPressed = (GetAsyncKeyState(VK_RBUTTON) & 0x8000) != 0;
    
    return leftPressed && rightPressed;
}

// 检查鼠标中键是否按下
bool IsMiddleMouseButtonPressed() {
    return (GetAsyncKeyState(VK_MBUTTON) & 0x8000) != 0;
}

// 检查键盘按键是否按下
bool IsKeyPressed(int vk) {
    return (GetAsyncKeyState(vk) & 0x8000) != 0;
}

int main() {
    std::wstring killCommand = L"taskkill /f /t /im StudentMain.exe";
    std::wstring startCommand = L"start \"\" \"C:\\Program Files (x86)\\Mythware\\StudentMain.exe\"";
    
    bool wasKillTriggered = true;
    
    while (true) {
        // 检查鼠标左右键是否同时按下(结束程序)
        if (AreBothMouseButtonsPressed() && !wasKillTriggered) {
            ExecuteCommand(killCommand);
            wasKillTriggered = true;
            std::this_thread::sleep_for(std::chrono::milliseconds(500)); // 防抖
        }
        
        // 检查鼠标中键是否按下(启动程序)
        if (IsMiddleMouseButtonPressed() && wasKillTriggered) {
            ExecuteCommand(startCommand);
            wasKillTriggered = false;
            std::this_thread::sleep_for(std::chrono::milliseconds(500)); // 防抖
        }
        
        // 检查上下键是否同时按下(隐藏屏幕广播窗口)
        if (IsKeyPressed(VK_UP) && IsKeyPressed(VK_DOWN)) {
            
            HWND hwnd = FindWindow(NULL, "屏幕广播");
            if (hwnd) {
                // 切换窗口显示状态
                while (1) {
					ShowWindow(hwnd, false);
					// 检查左右键是否同时按下(显示屏幕广播窗口)
			        if (IsKeyPressed(VK_LEFT) && IsKeyPressed(VK_RIGHT)) {
			            HWND hwnd = FindWindow(NULL, "屏幕广播");
			            if (hwnd) ShowWindow(hwnd, true);
			            break; 
        			}
        			
        			// 检查鼠标左右键是否同时按下(结束程序)
			        if (AreBothMouseButtonsPressed() && !wasKillTriggered) {
			            ExecuteCommand(killCommand);
			            wasKillTriggered = true;
			            std::this_thread::sleep_for(std::chrono::milliseconds(500)); // 防抖
			            break;
			        }
        			
			        // 短暂延迟,降低CPU使用率
			        std::this_thread::sleep_for(std::chrono::microseconds(1));
				}
            }
        }
        
        // 短暂延迟,降低CPU使用率
        std::this_thread::sleep_for(std::chrono::milliseconds(50));
    }
    
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...