0

正如我今天在一些问题中所说,我正在寻找在某个位置获取 window 或 windowPart 引用的方法。虽然我知道我可以为此目的使用 Cocoa(我还不知道该怎么做)我更喜欢(并且可能需要)使用 Carbon 来做到这一点,因为需要这个功能的整个应用程序都是用 C++ 编写的,但我已经尝试发现很多问题。

有人使用以下函数之一获得有效的 windowPtr 或 windowRef 吗?FindWindow、MacFindWindow、HIWindowFindAtLocation 或 FindWindowOfClass

我总是得到 0 作为我正在寻找的 windowRef 或 windowPtr 。我做错了什么?有任何想法吗?

确实,现在如果你想为 Mac OS X 创建一个 64 位应用程序,你需要使用 Cocoa 来实现它的用户界面,因为 Carbon 应用程序常用的一些 API 在 64 位应用程序中不可用?

谢谢你。

JxXx

4

1 回答 1

1

根据您对这个问题的回答,您似乎正在尝试将 WindowRef 获取到另一个应用程序的窗口。

正如这个在 carbon-dev 列表中的帖子所说:

您无法访问其他程序中的内存。来自另一个程序的 WindowRef 在您的程序的内存空间中将毫无意义。

关于 64 位碳的词是这样的:

如果你想为 Mac OS X 创建一个 64 位的应用程序,你需要使用 Cocoa 来实现它的用户界面。

编辑 -

[NSEvent mouseLocation]您可以使用(Cocoa) 或GetMouse()(Carbon)获取鼠标位置。如果您想与属于另一个应用程序的窗口进行交互,您需要使用Accessibility API (Cocoa) 或低级Quartz 窗口列表函数之类的东西。Quartz 函数返回所有窗口的列表(属于所有应用程序)和每个窗口的有限信息(边界、拥有 PID 等)

于 2010-04-13T11:07:43.383 回答