C++ 简易按键精灵制作

该博客介绍了如何使用C++制作简易按键精灵,详细讲解了按键代码的实现,强调了需以管理员身份运行可执行文件。同时,还探讨了如何结合定时器实现定时操作按键的功能,提供了一些参考资料和测试建议。
摘要由CSDN通过智能技术生成

 简易按键精灵制作

参考链接:https://docs.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-sendinput?redirectedfrom=MSDNhttps://www.fluentcpp.com/2018/12/28/timer-cpp/https://github.com/99x/timercpp

具体实现见代码,同时可以设置定时器进行定时操作按键。

按键代码实现(注意必须通过管理员身份运行生成的可执行文件才有效):

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

#include "timer.h"

// The reference between key and code connection can be found below:
// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes


/***************************************************************/
/*                          全局定义                            */
/***************************************************************/
constexpr size_t ARRAY_MAX_SIZE = 4;


/*****************************************************************
    功能描述: 发送按键消息
    其他说明:
*******************************************************************/
void GenerateKeyMsg(HWND hwnd, DWORD keyVal)
{
    std::cout << "Post message start. -->";
    LPARAM lparam = (MapVirtualKey(keyVal, 0) << 16) + 1;
    PostMessage(hwnd, WM_KEYDOWN, keyVal, lparam);
    std::this_thread::sleep_for(std::chrono::milliseconds(static_cast<size_t>(50)));
    PostMessage(hwnd, WM_KEYUP, keyVal, lparam);
    std::this_thread::sleep_for(std::chrono::milliseconds(static_cast<size_t>(10)));
    std::cout << " Post message finish." << std::endl;
}


int main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值