简易按键精灵制作
参考链接:https://docs.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-sendinput?redirectedfrom=MSDN、https://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