OS X应用程序-用户登录系统时自动启动应用程序



我是OSX开发的新手,我有一个状态栏应用程序,它假设一直停留在状态栏上,直到用户明确关闭它。

现在的问题是,如果用户从系统中注销,然后登录,应用程序就会关闭。

所以我的问题是如何让应用程序保持打开状态,或者在用户登录系统时如何自动重新打开它?

  • 这个应用程序目前供我自己使用(不供应用商店使用),如果它能让它更容易的话

我今天也遇到了同样的问题,并找到了一种不同的(在我看来更简单的)方法来实现这一点。基本上,您可以创建一个launchd作业,在用户登录时运行您的应用程序。

您需要以.plist文件(它是XML)的形式定义一个作业,它看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.capablemonkey.sleepApp</string>
    <key>ProgramArguments</key>
      <array>
          <string>/usr/bin/open</string>
          <string>-W</string>
          <string>/Applications/sleep.app</string>
      </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

从那里,假设你可以让你的Cocoa应用程序运行一些命令行命令,你会想把你的文件复制到~/Library/LaunchAgents/:

cp com.capablemonkey.sleepApp.plist ~/Library/LaunchAgents/

然后告诉launchd运行你的新工作:

launchctl load ~/Library/LaunchAgents/com.capablemonkey.sleepApp.plist

请参阅我的博客文章,了解node.js中的更深入的介绍和示例。它描述了如果用户决定不在登录时运行应用程序,也可以撤消此操作的方法,并检查launchd作业当前是否处于活动状态。

他们不需要运行脚本来自动启动应用程序。OSX内置了

用户可以拥有"登录项目"您可以在系统首选项>用户和组>登录项目中查看这些项目

话虽如此,你只需要了解你的应用程序如何将自己添加到这个列表中,这样当用户安装你的应用时,它就会将自己放置在那里。

你必须让你的应用程序在安装时运行一个脚本才能做到这一点。

我是一个新用户,所以我不能发布图片,但我发现了这个。。。

将应用程序添加到OSX";登录项目";在PackageMaker安装程序飞行后脚本期间

当然,另一件事是,如果这个应用程序只是供你自己使用,而不是供其他人使用,只需自己将其添加到你的登录项中,瞧!问题解决了。

希望这能有所帮助!

您可以考虑的一个选项是在登录时使用脚本启动应用程序(例如,在登录mac时运行脚本)。

一旦你开发了一个功能性脚本,你可以修改应用程序来安装脚本,也许是在第一次启动应用程序时,或者作为安装程序的一部分。

相关内容

最新更新