C++ 在系统范围内按SendInput键
我正在尝试制作一个程序,每按一次鼠标左键,就会发送两次额外的按键。这一切都很好,除了当我在另一个程序中(在我的情况下,这是一个游戏),然后它确实感觉到鼠标左键被按下,但它不会为我按下另外两个虚拟键。 整个代码:C++ 在系统范围内按SendInput键,c++,keypress,sendinput,C++,Keypress,Sendinput,我正在尝试制作一个程序,每按一次鼠标左键,就会发送两次额外的按键。这一切都很好,除了当我在另一个程序中(在我的情况下,这是一个游戏),然后它确实感觉到鼠标左键被按下,但它不会为我按下另外两个虚拟键。 整个代码: #include <Windows.h> #include <iostream> int main () { INPUT ip; bool press = false; int i = 0; while ( true ) { if ( GetKeyStat
#include <Windows.h>
#include <iostream>
int main ()
{
INPUT ip;
bool press = false;
int i = 0;
while ( true )
{
if ( GetKeyState( VK_LBUTTON) < 0 & !press )
{
std::cout << "press" << i++ << "\n";
// PRESS F8
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0x42; // hardware scan code for key
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = 0x77; // virtual-key code
ip.ki.dwFlags = 0; // 0 for key press
SendInput(1, &ip, sizeof(INPUT));
if (GetKeyState( VK_F8) < 0) { std::cout << "press f8 \n";}
ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = 0; // 0 for key press
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
SendInput(1, &ip, sizeof(INPUT));
press = true;
}
if ( GetKeyState( VK_LBUTTON) >= 0 )
{
press = false;
}
}
return(0);
}
#包括
#包括
int main()
{
输入ip;
bool-press=false;
int i=0;
while(true)
{
如果(GetKeyState(VK_LBUTTON)<0&!按)
{
我发现了如何使用扫描码来制作虚拟按键
// PRESS F8
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = MapVirtualKey(VK_F8, 0); // hardware scan code for key
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = 0;//0x77; // virtual-key code
ip.ki.dwFlags = KEYEVENTF_SCANCODE; // 0 for key press
SendInput(1, &ip, sizeof(INPUT));
if (GetKeyState( VK_F8) < 0) { std::cout << "press f8 \n";}
ip.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
SendInput(1, &ip, sizeof(INPUT));
//按F8键
ip.type=输入\键盘;
ip.ki.wScan=MapVirtualKey(VK_F8,0);//键的硬件扫描代码
ip.ki.time=0;
ip.ki.dwExtraInfo=0;
ip.ki.wVk=0;//0x77;//虚拟密钥代码
ip.ki.dwFlags=KEYEVENTF\u SCANCODE;//0表示按键
SendInput(1,&ip,sizeof(INPUT));
if(GetKeyState(VK_F8)<0){std::cout