首页 > 解决方案 > 是否可以通过 getasynckeystate 使用存储在双字中的十六进制?

问题描述

抱歉,如果标题有点令人困惑,但我正在尝试使用值为 12 的 DWORD,并将其与 GetAsyncKeyState 一起使用。

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

int x, y;
void click();
DWORD keybind = 12;

int main()
{
    while (1)
    {

        if (GetAsyncKeyState(keybind))
        {
            Sleep(100); 
            click(); 
            Sleep(100); 
        }
    }
}
void click()
{
    mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); 
    mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0); 
}

我可能在这里尝试做不可能的事情,因为我是编码新手,但希望你们能引导我朝着正确的方向前进 :) 另外,将它存储在 DWORD 中而不只是这样做的GetAsyncKeyState(VK_MENU)目的是因为我不想抓住txt 文件中的十六进制键码。

标签: c++

解决方案


是的,您可以将变量传递给GetAsyncKeyState()(尽管它需要 aint作为输入,而不是DWORDaka unsigned long)。

另外,请注意这VK_MENU是 HEX 0x12。在您的代码中使用的 DECIMAL 12 是 HEX 0x0Caka VK_CLEAR。所以,改变这个:

DWORD keybind = 12;

为此:

DWORD keybind = 0x12;

推荐阅读