c++ - 是否可以通过 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 文件中的十六进制键码。
解决方案
是的,您可以将变量传递给GetAsyncKeyState()
(尽管它需要 aint
作为输入,而不是DWORD
aka unsigned long
)。
另外,请注意这VK_MENU
是 HEX 0x12
。在您的代码中使用的 DECIMAL 12 是 HEX 0x0C
aka VK_CLEAR
。所以,改变这个:
DWORD keybind = 12;
为此:
DWORD keybind = 0x12;
推荐阅读
- c - 将字符串数组传递给在所有级别下施加 const-ness 的函数的最佳方法
- python - 如何针对烧瓶中的 jsonschema 验证 json?
- c# - 使用 Jodit WYSIWYG 和 .NET 上传图像
- javascript - 使用 Radio 值设置类背景颜色?
- android - 怎么可能收到收取 0 美元的订单?谷歌开发者控制台
- python - 在 Python 中绘制函数性能(计算速度)
- list - SML 将索引添加到列表
- node.js - 如何提高执行查询 MongoDb 需要 30 秒的查询性能
- mysql - SQL 从第三个表中获取关联数据
- laravel - 未为某些列插入 Laravel 数据