永发信息网

请问在C语言编程下怎么控制windows系统指针(就是鼠标控制移动那个)的移动

答案:2  悬赏:30  手机版
解决时间 2021-01-31 22:58
请问在C语言编程下怎么控制windows系统指针(就是鼠标控制移动那个)的移动
最佳答案
用SendInput函数。第二个参数是一个INPUT结构体的数组,第一个参数代表这个数组有几个元素,最后一个参数代表这个数组中每一个元素是几个字节。
#include
#pragma comment(lib, "user32.lib")
int main() {
INPUT mouseInput;
ZeroMemory(&mouseInput, sizeof mouseInput);
mouseInput.type = INPUT_MOUSE;
mouseInput.mi.dx = 10;
mouseInput.mi.dy = 10;
mouseInput.mi.dwFlags = MOUSEEVENTF_MOVE;
SendInput(1, &mouseInput, sizeof(mouseInput));
return 0;
}
以上代码把鼠标往右移动10往下移动10。使用MOUSEEVENTF_ABSOLUTE这个flag可以指定绝对位置,它把屏幕右下角定义为65535, 65535把左上角定义为0, 0所以
#include
int main() {
INPUT mouseInput;
ZeroMemory(&mouseInput, sizeof mouseInput);
mouseInput.type = INPUT_MOUSE;
mouseInput.mi.dx = 32767;
mouseInput.mi.dy = 32767;
mouseInput.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
SendInput(1, &mouseInput, sizeof(mouseInput));
return 0;
}
是移动到屏幕正中央。

至于鼠标点击:
#include
int main() {
INPUT mouseInput;
ZeroMemory(&mouseInput, sizeof mouseInput);
mouseInput.type = INPUT_MOUSE;
mouseInput.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1, &mouseInput, sizeof(mouseInput));
mouseInput.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, &mouseInput, sizeof(mouseInput));
return 0;
}
就是“按下”再“弹起来”。双击就是来两次,右击就是LEFT改成RIGHT。
全部回答
鼠标每点一下就会向操作系统发送一个消息,操作系统捕获这个消息后会发送到指定的程序中进行处理等等。
这个别人告诉你的都很浅,你想了解这个建议你看下《Windows程序设计》这本书,里面讲的很详细,也很全面
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
双流古今缘婚纱婚庆地址在什么地方,想过去办
一块长方形铁板,长75厘米,宽8厘米,它的面积是
浙江银行卡在河南存款要收费吗?
成功与失败意味着什么?
艾喜汇婚礼地址在什么地方,想过去办事
9月28号包裹到达中国北京,今天都10月13号了
动漫《月色真美》中第5 8 11话的插曲分别叫什
我是黑龙江户口在营口考的驾照转大连需要什么
请大神们帮我找一张图片 奖赏10Q币 留下QQ 就
花理派●婚礼定制地址有知道的么?有点事想过
已知正方形面积是12平方厘米,求正方形内最大
植物补光灯一天开多久
英魂之刃口袋版的手游赛事可以在哪里看直播?
为什么一个我喜欢的女生和我在一起的时候总是
退毛自己刮了,会不会越张越长,会长出来吗?
推荐资讯
燕郊属于北京市还是河北省
梦见雷雨交加
请问远洋地产青岛公司的电话是多少?公司地址
一款数码相机经销商有多大的利润?
广州罗冲围有那些新开唱歌的地方
发电机swisssk8500w多少钱
谁有gravity wall音乐的完整版?十分感谢!
农田的意思是什么啊?知道的请说下!
怎么样才算是湖 而不是水潭
美嘉利门业地址在什么地方,我要处理点事
是工商局不作为吗
金纳丝发型设计中心地址好找么,我有些事要过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?