在登入視窗中執行應用程式

在登入視窗中執行應用程式

我正在尋找一種在用戶登入之前在 Mac 和 PC 上運行 Reflector 或 AirServer 這樣的應用程式的方法,該應用程式幾乎沒有 GUI,直到有人開始向它發送數據,此時它會全螢幕顯示。

有沒有辦法在 Mac 和/或 PC 的登入畫面上執行應用程式?

答案1

在 OS X 中,您可以建立預先登入 launchd 代理程式。例如,將此屬性清單儲存為/Library/LaunchAgents/some.label.plist

<?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>some.label</string>
  <key>LimitLoadToSessionType</key>
  <array>
    <string>LoginWindow</string>
    <string>Aqua</string>
  </array>
  <key>ProgramArguments</key>
  <array>
    <string>say</string>
    <string>a</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

確保 plist 歸 root 所有。如果不是,則以launchd load使用者身分執行可以載入它,但不會被 launchd 自動載入。

然後,如果重新啟動,say 命令應在顯示登入視窗時運行一次,並在使用者以圖形方式登入後再次運行。

如果您不希望程式在使用者以圖形方式登入時再次運行,請刪除<string>Aqua</string>.

如果啟用自動登入並將LimitLoadToSessionType其設為 just LoginWindow,則程式根本不會運行。

請參閱守護程式和代理程式技術說明man launchd.plist了解更多。

相關內容