0

我试图找到一个基本上让我发疯的话题的答案。有没有办法像 Apple 的屏幕捕捉实用程序一样捕捉鼠标指针?我正在尝试做的事情需要我绘制一个清晰的窗口,它不会激活我的应用程序,而是覆盖所有内容,包括停靠栏。我见过的唯一一个这样做的软件是使用 command+shift+4 的屏幕截图。

我尝试创建一个非激活的 NSPanel,但它不适用于光标矩形,除非我的应用程序处于活动状态(我不希望它处于活动状态)。NSPanel 的问题还在于,如果我在仪表板中,我无法激活它上面的窗口。

我想做的事情的要求是这样的。• 我的应用程序不得激活(保持任何活动应用程序处于活动状态) • 必须能够更改 NSCursor • 鼠标不会触发停靠隐藏/取消隐藏(或任何其他事件) • 即使在仪表板中也可以工作

我之前尝试过此代码,但其限制与上面列出的相同。

NSScreen * s = [NSScreen mainScreen];

[self.window setStyleMask:NSNonactivatingPanelMask];
[self.window setHasShadow:NO];
[self.window setOpaque:NO];
[self.window setBackgroundColor:[NSColor clearColor]];
[self.window setFrame:s.frame display:NO];
[self.window orderFront:self];
[self.window setLevel:NSMainMenuWindowLevel + 1];
[self.trackingView addCursorRect:self.window.frame cursor:[NSCursor closedHandCursor]];
4

1 回答 1

1

事实证明,在将鼠标事件分发到任何应用程序之前使用 CGEventTap 和控制鼠标事件是可行的。不幸的是,如果你有一个沙盒应用程序,那么你就不能使用 CGEventTap。任何人都知道是否有办法通过沙盒获得相同的功能?

于 2013-11-02T14:55:04.207 回答