有没有办法以编程方式隐藏osx上的碳应用程序?

时间:2009-01-16 23:38:12

标签: c++ macos macos-carbon

我有一个Carbon C ++应用程序,我想以编程方式执行与我的应用程序的“应用程序”菜单中可用的Command-H(隐藏应用程序)相同的操作。我已经探索了TransitionWindow和HideWindow的碳API,虽然这些可以隐藏我的窗口,但它们并没有相当于Command-H。我查看了AppleEvent引用,我需要创建一个AppleEvent,但我没有看到一个用于隐藏应用程序。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

很抱歉回答我自己的问题,但ShowHideProcess()API似乎做了我想要的。如果有更好的解决方案,我很乐意听到它们。

答案 1 :(得分:1)

注意:隐藏窗口与隐藏应用程序非常不同。

答案 2 :(得分:1)

您还可以从Carbon事件管理器发送一个kHICommandHide('hide')命令事件(这是该菜单项的功能,并在处理时调用ShowHideProcess()),如果您愿意,例如,如果您愿意这个动作将由一个事件实现。

答案 3 :(得分:0)

  

我查看了AppleEvent参考文件,我需要创建一个AppleEvent,但我没有看到一个用于隐藏应用程序。有什么想法吗?

我不是专家,但你可以使用AppleEvent将进程的visible属性设置为false - 至少它适用于AppleScript

tell application "System Events"
    set visible of process "xyz" to false
end tell

另一方面,您的API似乎是最直接的方式,上面的代码也可能只是使用它。