mouse按键(mousel是哪个按键)

mouse按键(mousel是哪个按键)p 可以实现模拟鼠标滚轮滑动 键盘 键盘加鼠标的组合 唯一问题是 360 会阻碍对 sendinput 函数的调用 所以在桌面时会失效 当然解决这个问题我们必须通过 winIO 这个 p 桥梁实现 若大家感兴趣可以去看一看 后面我附上源码 请看友批评指正 include stdafx

大家好,我是讯享网,很高兴认识大家。




讯享网

 <p>可以实现模拟鼠标滚轮滑动&#xff0c;键盘&#xff0c;键盘加鼠标的组合&#xff0c;唯一问题是360会阻碍对sendinput函数的调用。所以在桌面时会失效。当然解决这个问题我们必须通过winIO这个</p> 

讯享网

桥梁实现。若大家感兴趣可以去看一看。后面我附上源码,请看友批评指正。

#include “stdafx.h”

#include “VirtualInput.h”
#include “windows.h”

void VirtualInput::MouseLeftClick()
{
INPUT    Input = { 0 };
// 左键按下
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1, &Input, sizeof(INPUT));
// 左键抬起
::ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1, &Input, sizeof(INPUT));
}
void VirtualInput::MouseRightClick()
{
INPUT    Input = { 0 };
// 右键按下
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
::SendInput(1, &Input, sizeof(INPUT));
// 右键抬起
::ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_RIGHTUP;
::SendInput(1, &Input, sizeof(INPUT));
}
void VirtualInput::MouseMove(int x, int y)
{
double fScreenWidth = ::GetSystemMetrics(SM_CXSCREEN) - 1;
double fScreenHeight = ::GetSystemMetrics(SM_CYSCREEN) - 1;
double fx = x (65535.0f / fScreenWidth);
double fy = y
(65535.0f / fScreenHeight);
INPUT  Input = { 0 };
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
Input.mi.dx = (long)(fx);
Input.mi.dy = (long)(fy);
::SendInput(1, &Input, sizeof(INPUT));
}
//鼠标中伦点击事件
void VirtualInput::MouseWheelClick()
{
INPUT    Input = { 0 };
// 设置滚轮量
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_WHEEL;
Input.mi.mouseData = 500;
::SendInput(1, &Input, sizeof(INPUT));
}
//离开用户方向滚动
void VirtualInput::MouseWheelDirectUp(int wheelUValue)
{
INPUT    Input = { 0 };
// 设置滚轮量
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_WHEEL;
Input.mi.mouseData = wheelUValue*120;
::SendInput(1, &Input, sizeof(INPUT));
}
//进入用户方向滚动
void VirtualInput::MouseWheelDirectDown(int wheelDValue)
{
INPUT    Input = { 0 };
// 设置滚轮量
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_WHEEL;
Input.mi.mouseData = -wheelDValue*120;
::SendInput(1, &Input, sizeof(INPUT));
}
//
void VirtualInput::MouseDLeftClick()
{
INPUT    Input = { 0 };
// 左键按下
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1, &Input, sizeof(INPUT));
// 左键抬起
::ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1, &Input, sizeof(INPUT));


::ZeroMemory(&Input, sizeof(INPUT));


Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1, &Input, sizeof(INPUT));
// 左键抬起
::ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1, &Input, sizeof(INPUT));


}


void VirtualInput::MouseLDragStart()
{
INPUT    Input = { 0 };
// 左键按下
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1, &Input, sizeof(INPUT));

}
void VirtualInput::MouseLDragMove(int x, int y)
{
MouseMove(x, y);
}
void VirtualInput::MouseLDragEnd()

INPUT    Input = { 0 };
// 左键抬起
::ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1, &Input, sizeof(INPUT));
}




void VirtualInput::MouseRDragStart()
{
INPUT    Input = { 0 };
// 左键按下
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1, &Input, sizeof(INPUT));



}
void VirtualInput::MouseRDragMove(int x, int y)
{
MouseMove(x, y);
}
void VirtualInput::MouseRDragEnd()
{
INPUT    Input = { 0 };
// 左键抬起
::ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1, &Input, sizeof(INPUT));
}




void VirtualInput::KeyBordDown(int vk)
{

//INPUT    Input = { 0 };
右键按下
//Input.type = INPUT_KEYBOARD;
//Input.mi.dwFlags = KEYEVENTF_KEYUP;
//::SendInput(1, &Input, sizeof(INPUT));
keybd_event(vk, 0, 0, 0);


}
void VirtualInput::KeyBordUp(int vk)
{
//INPUT    Input = { 0 };
右键按下
//Input.type = INPUT_KEYBOARD;
//Input.mi.dwFlags = KEYEVENTF_KEYUP;
//::SendInput(1, &Input, sizeof(INPUT));
keybd_event(vk, 0, KEYEVENTF_KEYUP, 0);
}


void VirtualInput::KeyBord(int vk)
{
keybd_event(vk, 0, 0, 0);
}


VirtualInput::VirtualInput()
{
}
VirtualInput::~VirtualInput()
{
}
































































































































































































小讯
上一篇 2025-04-23 20:37
下一篇 2025-05-31 15:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/202991.html