如何获取当前屏幕光标位置?

6

我的目标是在屏幕上(表单外)获取当前位置,并通过按下“C”键保存X、Y坐标。

我在谷歌上搜索并发现一些建议使用API钩子,但是我想知道是否有一种纯粹使用C#代码(.NET库)完成此任务的方法?

如果可能,请给我一个快速示例,因为我是C#的新手。

谢谢。


您是指“绝对屏幕坐标”吗?即从屏幕左上角开始的x和y偏移量(以像素为单位)? - corlettk
@corlettk:是的,那就是我的意思。 - Kelly
@Icky:是的,我正在要求凯利向我们保证这确实是事实。他/她可能只是不知道这个术语。 - corlettk
2
可能是重复问题 https://dev59.com/EXM_5IYBdhLWcg3wlEPO - Saleh
这个回答解决了你的问题吗?在C#中获取鼠标位置 - undefined
2个回答

12

我测试了你的代码,但是当我按下"C"键时,MessageBox没有出现。我有什么遗漏吗? - Kelly
也许我走得太快了。你说你是新手C#,但我不知道你有多新。如果这太基础,请原谅我,你在表单编辑器中添加了KeyPress事件吗? - MPelletier
当然,在窗体上进行按键操作是一个棘手的问题,因为如果控件拥有焦点,则该事件不会被触发。 - MPelletier
1
谢谢MPelletier,我通过将Keypreview属性设置为true来找到解决方案。问候。 - Kelly
@Kelly,你刚刚教了我关于KeyPreview的知识。太棒了! - MPelletier

0
我发现分享另一种类似问题的方法很有趣。

https://dev59.com/EXM_5IYBdhLWcg3wlEPO#5577528

当然,你可以在后台使用光标位置,包括用户不与正在运行的程序进行交互时。通过使用新线程并定期调用GetCursonPosition方法,可以轻松实现 - 更多信息可以在链接中找到。
附注:确保你知道连接到设备的总屏幕数量,这样你就可以知道正确的偏移量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接