C#更改全局鼠标光标

问题描述:

我有一个透明度键颜色的窗体,我正在为右键单击全局鼠标钩。C#更改全局鼠标光标

直到那里一切正常,但由于窗体是透明的,鼠标光标根据窗体背后的内容而改变。

有什么办法可以改变全局鼠标光标吗?

+0

为什么?你在创建什么? – SLaks 2010-08-15 21:34:01

+0

它是一种“颜色选择器” – Rias 2010-08-15 21:39:17

+0

您需要这个颜色选择器? – 2010-08-15 22:33:36

是的,这就是透明度的工作原理。不仅仅是用户的眼睛,还有鼠标从左眼看到的东西。必须以这种方式工作,否则主要的用户混淆,没有选择改变它。

解决方法是显示假的桌面版本。屏幕截图。正在流行的Windows剪辑工具。示例代码在this thread

+0

是的,我知道解决方法,它有我的第一个方法来解决问题,它的工作。 但是,表现并不是最好的,因为在我的情况下,窗体随着鼠标移动,而在第二个窗体上,我有一个元素,就像放大镜一样。 所以我尝试用全局鼠标移动/点击钩子,我得到了很多更好的性能。 顺便说一句,它似乎只发生在winxp的问题,在Windows 7的鼠标光标不会改变。 – Rias 2010-08-16 00:04:50

+0

是的,Aero会影响这种行为,我想。不知道如何从这里向前移动这个线程。仍然不知道你真的*想做什么。 – 2010-08-16 00:06:43

+0

我有一个表单,它的作用像一个放大镜,另一个表单是透明的,一个100x100的透明方块,只有一个像素边框,位于鼠标光标的中心(十字光标看起来像一个目标)表示该放大镜的面积,所以我这样做的原因是用鼠标单击来选择任何颜色,而不会将点击发送到桌面。 但是,看起来似乎没有解决方案,我试图去,会稍微多一点,看看有人有任何建议,而不是接受你的答案。 – Rias 2010-08-16 00:41:30