要实现点击控制台输出的特定字符串执行某个函数,需要使用鼠标事件来监测鼠标点击操作,并利用字符串比较来判断是否点击了特定字符串。以下是一个简单的 C++ 示例代码:

#include <iostream>
#include <Windows.h>

void a() {
    std::cout << "执行了函数 a" << std::endl;
}

void detectMouseClick() {
    INPUT_RECORD inputRecord;
    DWORD numEventsRead;

    HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
    SetConsoleMode(hStdin, ENABLE_EXTENDED_FLAGS | ENABLE_MOUSE_INPUT);

    while (true) {
        ReadConsoleInput(hStdin, &inputRecord, 1, &numEventsRead);

        if (inputRecord.EventType == MOUSE_EVENT) {
            if (inputRecord.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) {
                COORD clickPos = inputRecord.Event.MouseEvent.dwMousePosition;

                // 获取控制台输出的特定字符串
                CONSOLE_SCREEN_BUFFER_INFO csbi;
                GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
                CHAR_INFO charInfo;
                COORD charPos = { clickPos.X, clickPos.Y };
                ReadConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE), &charInfo, 1, charPos, &csbi.srWindow);

                if (charInfo.Char.UnicodeChar == '1' && clickPos.X < csbi.dwSize.X - 1) {
                    // 如果点击了特定字符串,则执行函数 a
                    charInfo.Char.UnicodeChar = '1';
                    WriteConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE), &charInfo, 1, charPos, &csbi.srWindow);
                    a();
                }
            }
        }
    }
}

int main() {
    std::cout << "114514" << std::endl;

    detectMouseClick();

    return 0;
}

在上述示例代码中,detectMouseClick() 函数通过循环不断读取鼠标事件,当检测到鼠标左键点击时,获取鼠标点击的位置和点击位置的字符信息。然后,与特定字符串进行比较,如果相同,则执行函数 a() 并输出相应的信息。

请注意,在 Windows 下,需要使用 Windows.h 头文件中的相关函数来处理鼠标事件。此外,要使用鼠标事件,需要将控制台输入模式设置为 ENABLE_MOUSE_INPUT

C++ 实现鼠标点击控制台输出字符串执行函数

原文地址: https://www.cveoy.top/t/topic/qfkD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录