【问题标题】:How to launch application on startup [closed]如何在启动时启动应用程序[关闭]
【发布时间】:2019-05-28 12:40:06
【问题描述】:

我有一个 OSX 项目(objective-c),我想在启动时运行它。

意思是,我想编写一些代码来植入我的应用程序,以便它在启动时运行。这样每当用户第一次运行我的应用程序时,它总是会在启动时为该用户启动。

我该怎么做?

非常感谢任何帮助!

【问题讨论】:

  • 我不同意这篇文章偏离主题 - 它是关于 LSSharedFileList 或类似的问题。阅读问题,而不仅仅是扫描。
  • “Stack Overflow 是一个面向专业和狂热程序员的问答网站。它是作为 Stack Exchange 问答网站网络的一部分由您构建和运行的。”这个问题绝对是关于编程而不是离题。

标签: objective-c xcode macos


【解决方案1】:

你必须使用启动代理。

创建一个类似这样的 XML 文件并将其放置在 ~/Library/LaunchAgents(对于单个用户)或 /Library/LaunchAgents(对于所有用户)中。

<?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.example.your.program</string>
    <key>ProgramArguments</key>
    <array>
        <string>--some-arg</string>
        <string>--some-other-arg</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>RunAtLoad</key>
        <true/>
    <key>KeepAlive</key>
        <true/>

    <key>StandardErrorPath</key>
        <string>/dev/null</string>
    <key>StandardOutPath</key>
        <string>/dev/null</string>
</dict>
</plist>

然后重新启动启动代理以使用launchctl load ~/Library/LaunchAgents/com.example.your.program.plist 加载您的文件

【讨论】:

    【解决方案2】:

    我不会说这是 StackOverflow 的问题。
    无论如何,如果您想要做的只是在系统启动时启动一个可可应用程序,您可以使用系统首选项的“用户”窗格非常简单地做到这一点。

    选择您的帐户,切换到“登录元素”窗格,然后添加应用程序。

    【讨论】:

    • 我想编写一些代码来植入我的应用程序,以便它在启动时运行。因此,每当用户第一次运行我的应用程序时,它总是会在启动时为该用户启动。为什么这不是 StackOverflow 的问题?
    • 好的,现在更清楚了。听起来好像您只想在计算机上启动时运行该应用程序。
    • 感谢我编辑了原始问题以使其更清晰。如果您不介意,请取消您的投票。
    • @Nili 您可以将您的应用程序添加到登录项。看看UKLOGINITEMREGISTRY
    猜你喜欢
    • 2012-11-25
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 2013-08-14
    相关资源
    最近更新 更多