c++ - 是否可以将存储在双字中的十六进制与 getasynckeystate 一起使用?

标签 c++

抱歉,如果标题有点令人困惑,但我正在尝试使用值为 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 文件中获取十六进制键码。

最佳答案

是的,您可以将变量传递给 GetAsyncKeyState()(尽管它需要一个 int 作为输入,而不是一个 DWORD 又名 unsigned long).

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

DWORD keybind = 12;

改为:

DWORD keybind = 0x12;

关于c++ - 是否可以将存储在双字中的十六进制与 getasynckeystate 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51648424/

相关文章:

c++ - 字母排序是向后使用 string.compare()

c++ - 带有模板参数的模板函数

c++ - C++中的随机数生成......第一个数字不是很随机

python - ZeroMQ 中的锁定主题

c++ - 在 C 中创建 cout 函数?

python - 当我使用 operator[] 时列出导致错误的项目

c++ - boost::python 函数调用中 boost::shared_ptr 的转换

c++ - STL "rdbuf"方法名称代表什么?

c++ - opencv如何用鼠标事件不规则地选择图像区域? C/C++

c++ - std::unique_ptr<T[]> API 禁止派生到基指针的转换