首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制鼠标运动

控制鼠标运动
EN

Stack Overflow用户
提问于 2013-06-23 01:01:55
回答 2查看 709关注 0票数 0

当我玩电脑游戏时,我需要用手指移动鼠标指针。(说crysis3..这样,我就可以用手指移动相机了)。

在移动时,我可以在不玩游戏的时候移动鼠标。为此,我使用了SetCursorPos()窗口函数。(动作并不完美,但这不是一个问题。)

但问题是这(SetCursorPos)对游戏没有影响..

有人能告诉我为什么和如何解决这个问题吗?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-06-23 03:26:16

SetCursorPos不工作的原因是因为游戏可能使用更低级的应用编程接口来捕获鼠标输入,可能类似于DirectInput

我怀疑截获该输入的唯一方法就是使用过滤器驱动程序。查看堆栈溢出问题的答案:Intercept mouse input

票数 0
EN

Stack Overflow用户

发布于 2013-06-23 22:34:08

最后,我终于可以让它工作了……:)

SendInput()有效

代码语言:javascript
复制
    mx = (cordi[0][0]) * screenWidth / (640);
    my = (cordi[0][1]) * screenHeight / (480);

    INPUT input;
    input.type  = INPUT_MOUSE;
    input.mi.mouseData  = 0;
    input.mi.dx = -(mx - prevX);//65536 - ((mx - prevX) *(65536/GetSystemMetrics(SM_CXSCREEN)));//x being coord in pixels
    input.mi.dy =  (my - prevY);//(my - prevY) *(65536/GetSystemMetrics(SM_CYSCREEN));//y being coord in pixels
    input.mi.dwFlags    =  MOUSEEVENTF_MOVE;//MOUSEEVENTF_ABSOLUTE
    SendInput(1,&input,sizeof(input));

我第一次使用MOUSEEVENTF_ABSOLUTE..它不起作用..但后来我凭直觉使用了相对运动,它起作用了……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17253183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档