控制鼠标移动

vs2013 wn32 cmd程序。
从别的网站拷贝的,稍微改了下。

#include <iostream>
#include <Windows.h>
#include <time.h>

void MouseMove(const int x, const int y)
{
	const double fScreenWidth = ::GetSystemMetrics(SM_CXSCREEN) - 1;
	const double fScreenHeight = ::GetSystemMetrics(SM_CYSCREEN) - 1;
	const double fx = x * (65535.0f / fScreenWidth);
	const double fy = y * (65535.0f / fScreenHeight);
	mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, (DWORD)fx, (DWORD)fy, 0, 0);
}

int main()
{
	srand((unsigned int)time(0));
	while (true)
	{
		POINT point_temp;
		::GetCursorPos(&point_temp);
		int iDisXY = rand() % 3;
		while (iDisXY == 0){ iDisXY = rand() % 3; }
		printf("move mouse to %d, %d\n", point_temp.x + iDisXY, point_temp.y + iDisXY);
		MouseMove(point_temp.x + iDisXY, point_temp.y + iDisXY);
		Sleep(1000 * 60);
	}
	return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux环境下控制鼠标移动可以使用C语言编写的程序。首先,需要通过Linux系统提供的X Window系统库来进行操作。 1. 包含头文件和链接库: 要控制鼠标移动,需要包含Xlib库的头文件和链接库。可以使用以下命令来安装: ``` sudo apt-get install libx11-dev ``` 然后在代码中包含以下头文件: ```c #include <X11/Xlib.h> ``` 2. 连接到X服务器: 使用XOpenDisplay函数连接到X服务器: ```c Display *display = XOpenDisplay(NULL); if (display == NULL) { fprintf(stderr, "无法连接到X服务器\n"); exit(1); } ``` 3. 获取当前鼠标位置: 使用XQueryPointer函数来获取当前鼠标的位置: ```c Window root; Window child; int root_x, root_y; int win_x, win_y; unsigned int mask; XQueryPointer(display, DefaultRootWindow(display), &root, &child, &root_x, &root_y, &win_x, &win_y, &mask); ``` 4. 设置新的鼠标位置: 使用XWarpPointer函数将鼠标移动到新的位置: ```c XWarpPointer(display, None, root, 0, 0, 0, 0, x, y); XFlush(display); //刷新屏幕显示,使鼠标移动生效 ``` 在代码中,将x和y替换为期望的新鼠标坐标。 5. 断开与X服务器的连接: 使用XCloseDisplay函数断开与X服务器的连接: ```c XCloseDisplay(display); ``` 以上就是通过C语言在Linux环境下控制鼠标移动的基本步骤。根据具体需求,还可以利用其他Xlib库提供的函数,如XQueryPointer获取鼠标状态信息、使用XTestFakeButtonEvent模拟鼠标点击等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值