关注《一碳科技》获取更多干货哦!

远程控制鼠标

小编又给大家带来干货啦,而且此次干货是大家比较感兴趣的——远程控制鼠标,和之前一样,小编使用的是socket来实现的,说难也难,说简单也简单,对于接触过socket的同学可能会简单一点,而刚刚入门的同学对于这个可能会有点难以理解,但是,既然你看了小编的文章,那么小编就尽力让你看得懂、学得会!

上菜!

首先,我们需要用到windows.h、WinSock2.h、stdio.h这三个头文件,除了以上三个以外,我们还需要一个ws2_32.lib链接库。

我们要编写两个函数,分别实现连接控制端、接受控制端数据并设置鼠标位置,小编分别取名为socket_connet()、recv_setpos()

socket_connet()

这个函数中,我们需要申请一个WSADATA类型的变量用来储存WSAStartup()函数初始化返回的初始化信息的,除此之外还需要一个SOCKET类型变量、SOCKADDR_IN结构体

第一步先初始化,然后才能使用其他的socket函数,这一点必须要记住!初始化完成之后就要开始连接服务器了,这时我们会用到connet函数,但是在使用connet函数之前,我们要申请一个套接字,这就需要用到socket函数了。

socket()函数第一个参数是套接字使用的协议族,通常是AF_INET,第二个参数是我们要使用的通讯协议,这里我们使用的是TCP,所以这里填SOCK_STREAM,第三个参数一般填0。紧接着,我们将控制端的ip地址、所使用的协议族、端口号等数据填入SOCKADDR_IN结构体中。

接下来就是使用connet函数连接控制端了,这个函数比较简单,第一个参数是我们刚才申请的套接字,第二个参数是服务器的地址信息(SOCKADDR_IN),第三个是SOCKADDR_IN所占的空间大小。写到这里,我们已经成功连接了控制端了。

recv_setpos()

要接收控制端发过来的数据就要使用的recv()函数,这个函数需要四个参数,第一个参数是我们申请的套接字,第二个参数是存放数据的“地方”,第三个是存放数据的“地方”大小,第四个参数设置为0,具体实现步骤可以在源码上看到。

小编使用一个int类型的数组,用来储存控制端发过来的鼠标位置信息,该数组只有一个成员,小编实现控制鼠标的步骤是,接收控制端发过来的鼠标X轴数据填入POINT结构体中,然后再接收控制端发过来的鼠标Y轴数据填入POTIN结构体中。

POINT结构体是用来存储鼠标位置信息的,成员为两个LONG类型的变量,我们的光标X、Y轴数据就存储在这两个变量当中,设置鼠标位置需要用到SetCursorPos()函数,这个函数接收两个LONG类型的参数,分别表示光标在X轴、Y轴上的位置。

如何做到实时更新鼠标位置?

小编使用一个while循环不断地接收控制端发过来的鼠标位置数据,然后在循环里设置鼠标位置,在不断地循环当中,鼠标就像被远程控制一样,控制端的鼠标在哪,被控端的鼠标就在哪。

控制端,源码获取

由于时间问题,控制端教学将在下一篇文章中发布,关注《一碳科技》及时了解最新教程。

如何获取源码?

先关注《一碳科技》,程序源码将在下一篇文章中发给大家,所以,想要获取源码的同学,可以留意《一碳科技》的动态。

查看原文 >>
相关文章