c语言 获取鼠标键盘事件

c语言 获取鼠标键盘事件,第1张

我估计你分数给的在高也没人回答。来个这样的代码太麻烦了。而且百度金币用处也不大。

不过,我可以写几个鼠标函数给你参考一下。

首先了解一下鼠标的中断。

_AX=0x01

表示显示光标

_AX=0x02

停止显示光标

_AX=0x03

读取光标位置与案件

_AX=0x04

设置光标位置

所以啊。根据这四个中断,有以下几个函数

----------------------------------------------------

void

MouseOn(void)//鼠标光标显示

{

_AX

=

0x01;

geninterrupt(0x33);

}

----------------------------------------------------

void

MouseOff(void)//鼠标光标隐藏

{

_AX

=

0x02;

geninterrupt(0x33);

}

---------------------------------------------------

void

MouseSetXY(int

x,int

y)//设置当前位置

{

_CX

=

x,

_CD

=

y;

_AX

=

0x04;

geninterrupt(0x33);

}

---------------------------------------------------

int

LeftPress(void)//鼠标左键按下

{

_AX

=

0x33;

geninterrupt(0x33);

return(_BX&1);

}

-----------------------------------------------------

鼠标右键的应该也会了吧。不过要return(_BX&2);

-----------------------------------------------------

void

MouseGetXY(void)//得到当前位置

{

_AX

=

0x33;

geninterrupt(0x33);

MouseX

=

_CX;

MouseY

=

_DX;

}

---------------------------------------------------------------

最好要复制粘贴,打字打得手疼。

用C语言在Linux下获取鼠标光标的相对位置代码分享:

#include <stdioh>

#include <stdlibh>

#include <linux/inputh>

#include <fcntlh>

#include <sys/timeh>

#include <sys/typesh>

#include <sys/stath>

#include <unistdh>

int main(int argc,char argv)

{

int fd, retval;

char buf[6];

fd_set readfds;

struct timeval tv;

//fd = open("/dev/input/mice", O_RDONLY);

if(( fd = open("/dev/input/mice", O_RDONLY))<0)

{

printf("Failed to open \"/dev/input/mice\"\n");

exit(1);

}

else

{

printf("open \"/dev/input/mice\" successfuly\n");

}

while(1)

{

tvtv_sec = 5;

tvtv_usec = 0;

FD_ZERO(&readfds);

FD_SET(fd, &readfds);

获取鼠标点所在窗口的坐标或相对屏幕的坐标,然后你就可以做自己想做的了

using System;

using SystemCollectionsGeneric;

using SystemText;

namespace MouseEvent

{

class Program

{

[SystemRuntimeInteropServicesDllImport("user32dll")]

private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

const int MOUSEEVENTF_MOVE = 0x0001;

const int MOUSEEVENTF_LEFTDOWN = 0x0002;

const int MOUSEEVENTF_LEFTUP = 0x0004;

const int MOUSEEVENTF_RIGHTDOWN = 0x0008;

const int MOUSEEVENTF_RIGHTUP = 0x0010;

const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;

const int MOUSEEVENTF_MIDDLEUP = 0x0040;

const int MOUSEEVENTF_ABSOLUTE = 0x8000;

static void Main(string[] args)

{

for (int i = 0; i < 5; i++)

{

SystemThreadingThreadSleep(1000);

//鼠标移动,坐标x,坐标y,只设置前三个参数就够了

mouse_event(MOUSEEVENTF_MOVE, 10, 0, 0, 0);

//鼠标左键点击

mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);

mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

}

}

}

}

OnMouseMove的后一个参数就是鼠标的当前位置

void CTest1View::OnMouseMove(UINT nFlags, CPoint point)

{

// TODO: Add your message handler code here and/or call default

CView::OnMouseMove(nFlags, point);

CPoint MousePosition = point;

}

以上就是关于c语言 获取鼠标键盘事件全部的内容,包括:c语言 获取鼠标键盘事件、我怎样才能得到绝对鼠标位置在Linux下用C、C#C++如何确定鼠标点击的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10065633.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存