1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言让程序等待鼠标点击 C语言模拟鼠标事件

c语言让程序等待鼠标点击 C语言模拟鼠标事件

时间:2022-07-01 12:52:55

相关推荐

c语言让程序等待鼠标点击 C语言模拟鼠标事件

今天鼠标坏了,触摸板也被我禁止了,那叫一个纠结,我就上网查了一下能不能键盘控制鼠标,发现还真有。

先来看一个函数,据说已经被废弃的API函数

VOID WINAPI mouse_event( _In_ DWORD dwFlags, _In_ DWORD dx, _In_ DWORD dy, _In_ DWORD dwData, _In_ ULONG_PTR dwExtraInfo );

dwFlags:这个参数是设置鼠标的事件的,如左键按下,右键抬起,等等

MOUSEEVENTF_ABSOLUTE

MOUSEEVENTF_LEFTDOWN

MOUSEEVENTF_LEFTUP

MOUSEEVENTF_MIDDLEDOWN

MOUSEEVENTF_MIDDLEUP

MOUSEEVENTF_MOVE

MOUSEEVENTF_RIGHTDOWN

MOUSEEVENTF_RIGHTUP

MOUSEEVENTF_WHEEL

MOUSEEVENTF_XDOWN

MOUSEEVENTF_XUP

MOUSEEVENTF_WHEEL

MOUSEEVENTF_HWHEEL

dx:

dy:这两个参数是设置鼠标的位置的,如果MOUSEEVENTF_ABSOLUTE被设置了,那么这两个参数就是绝对位置,否则就是相对位置

后两个参数不详,具体参见mouse_event的MSDN

/zh-cn/library/windows/desktop/ms646260(v=vs.85).aspx

下面就是使用,我们可以直接调用mouse_event函数,如mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 0, 0, 0, 0);

就是将鼠标移到屏幕(0,0)的位置

mouse_event (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) ;

就是在(0,0)处点击一下鼠标,即,鼠标左键按下和松开两个事件

下面是我写的一个控制鼠标的代码

#include

#include

#include

int main()

{

POINT cursorPos;

int move_x = 0;

int move_y = 0;

while(1)

{

GetCursorPos(&cursorPos);//得到鼠标的位置

if(cursorPos.x != move_x || cursorPos.y != move_y)//判断鼠标是否移动

{

move_x = cursorPos.x;//如果移动就将位置赋值给变量

move_y = cursorPos.y;

printf("%d %d\n",move_x, move_y);//打印出来鼠标的位置

}

switch(getch())

{

case 75: move_x--; break;//left

case 77: move_x++; break;//right

case 72: move_y--; break;//up

case 80: move_y++; break;//down

case 'z': mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);break;

case 'x': mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);break;

case 'c': mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);break;

}

SetCursorPos(move_x,move_y);//设置鼠标的位置

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。