2

我之前问过一个关于在 OSX 上更改系统范围内的光标的问题。我使用 NSCursor 更改光标,但效果只有在应用程序处于活动状态时才会生效。当另一个应用程序变为活动状态时,自定义光标将丢失。

这是一个相关的,更一般的问题。如何编写具有系统妻子效果的应用程序?例如,即使您的应用程序未处于活动状态,也可以在屏幕上绘制图像,而其他东西是否处于活动状态?

我知道我可能需要比 Cocoa API 更低的级别。我只是不知道从哪里开始寻找?我需要查看任何特定的 Carbon API 吗?甚至更低?

任何指针将不胜感激!如果您特别知道如何在系统范围内更改光标或如何绘制图像并四处移动(无论哪个应用程序处于活动状态),那也可以解决我当前的问题!我可以编写一个安装在系统上时可以实现此目的的应用程序吗?

谢谢!

4

2 回答 2

1

你可以达到你想要的效果,但不是你想的那样。

你说,

我正在编写一个演示辅助应用程序,它以编程方式在屏幕上显示相当于“激光指针”的内容。我的第一个想法是使用鼠标光标本身作为指针,并将其外观更改为红色圆圈。

那就假装吧。创建一个应用程序,可能是 type LSUIElement,也可能不是,这取决于您想要的行为。创建一个无边框窗口(类型NSBorderlessWindowMask)并用清晰的颜色填充它。将它的窗口级别设置得足够高,以便它漂浮在所有东西上(使用-[NSWindow setLevel:],虽然我想不出最好的水平是什么),然后画进去。

确实,当您不是最重要的应用程序时,您无法设置光标。的确,您不能只在屏幕上乱涂乱画。但是如果你很聪明,你可以得到同样的效果。

于 2011-08-29T02:38:48.747 回答
0

Mac OS X 上的任何 API 都不提供此行为。您必须修改操作系统中的资源文件,这是一个非常危险的操作,可能会使目标计算机变砖。你必须知道你在做什么。

您是否正在尝试实现主题应用程序或类似的东西?你的目标是什么?如果您告诉我们您正在尝试做什么,我们可能会建议替代方法。

于 2011-08-16T16:11:06.133 回答