91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

編寫安全的C++鼠標鉤子程序

發布時間:2024-11-07 13:11:24 來源:億速云 閱讀:80 作者:小樊 欄目:編程語言

創建一個安全的C++鼠標鉤子程序需要使用低級別的API函數

#include <iostream>
#include <windows.h>

// 定義一個全局變量來存儲鼠標鉤子的句柄
HHOOK g_hMouseHook = NULL;

// 鼠標鉤子回調函數
LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam) {
    if (nCode >= 0) {
        switch (wParam) {
            case WM_MOUSEMOVE:
                std::cout << "Mouse moved to (" << LOWORD(lParam) << ", " << HIWORD(lParam) << ")" << std::endl;
                break;
            case WM_LBUTTONDOWN:
                std::cout << "Left button clicked at (" << LOWORD(lParam) << ", " << HIWORD(lParam) << ")" << std::endl;
                break;
            case WM_RBUTTONDOWN:
                std::cout << "Right button clicked at (" << LOWORD(lParam) << ", " << HIWORD(lParam) << ")" << std::endl;
                break;
            case WM_MBUTTONDOWN:
                std::cout << "Middle button clicked at (" << LOWORD(lParam) << ", " << HIWORD(lParam) << ")" << std::endl;
                break;
        }
    }

    // 調用默認的鼠標鉤子處理程序
    return CallNextHookEx(g_hMouseHook, nCode, wParam, lParam);
}

// 安裝鼠標鉤子
BOOL InstallMouseHook() {
    g_hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProc, GetModuleHandle(NULL), 0);
    if (g_hMouseHook == NULL) {
        std::cerr << "Failed to install mouse hook. Error code: " << GetLastError() << std::endl;
        return FALSE;
    }
    std::cout << "Mouse hook installed successfully." << std::endl;
    return TRUE;
}

// 卸載鼠標鉤子
void UninstallMouseHook() {
    if (g_hMouseHook != NULL) {
        UnhookWindowsHookEx(g_hMouseHook);
        g_hMouseHook = NULL;
        std::cout << "Mouse hook uninstalled successfully." << std::endl;
    } else {
        std::cerr << "Mouse hook is not installed." << std::endl;
    }
}

int main() {
    if (InstallMouseHook()) {
        std::cout << "Press any key to uninstall mouse hook and exit..." << std::endl;
        std::cin.get();
        UninstallMouseHook();
    }
    return 0;
}

這個程序使用SetWindowsHookEx函數安裝一個低級鼠標鉤子,當鼠標移動或點擊時,回調函數MouseHookProc會被調用。在這個函數中,我們處理了鼠標移動、左鍵點擊、右鍵點擊和中鍵點擊事件,并將它們的位置輸出到控制臺。

請注意,這個程序需要在Windows操作系統上運行,并且需要包含windows.h頭文件。此外,這個程序僅適用于C++編譯器,并且需要在Visual Studio或其他支持C++的IDE中編譯和運行。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

阳山县| 丹凤县| 陆川县| 桃园县| 资讯| 滦平县| 招远市| 沁源县| 合作市| 桂阳县| 平陆县| 紫阳县| 凤城市| 肃南| 通辽市| 桃源县| 黄骅市| 东台市| 纳雍县| 东乌| 丰宁| 永和县| 赞皇县| 苏尼特右旗| 宜城市| 博兴县| 宁波市| 乐平市| 肥乡县| 环江| 武定县| 双流县| 望奎县| 梅河口市| 黄大仙区| 鸡泽县| 饶平县| 景谷| 洛阳市| 湘西| 黑龙江省|