2011-06-02 194 views
1

我已經寫了一個程序,彈出在loginwindow應用程序的前面,並要求提供某些信息。一旦信息被驗證。登錄窗口可以看到,你可以選擇登錄哪個用戶。 我想在我的應用程序中運行腳本/ bash代碼或其他內容,以便用戶無法看到登錄窗口。相反,應用程序應該自己登錄來賓用戶。我試着使用AppleScript即登錄用戶由loginwindow通過在mac中的應用程序

set logInUser to "Guest" 
set logInPassword to "Guest" 

tell application "System Events" 

    tell application process "loginwindow" 

     key code 53 

     delay 1 

     key code 125 
     delay 1 
     key code 36 using option down 
     delay 1 
     keystroke tab 
     delay 1 
     key code 117 
     delay 0.5 
     keystroke tab 
     delay 0.5 
     key code 117 
     keystroke return 
     delay 1 
     keystroke tab 
     delay 0.2 
     repeat with aChar in characters of logInUser 
      keystroke aChar 
      delay 0.2 
     end repeat 
     keystroke tab 
     delay 0.5 
     repeat with aChar in characters of logInPassword 
      keystroke aChar 
      delay 0.2 
     end repeat 
     key code 98 using control down 
     delay 0.2 
     keystroke return 

    end tell 
end tell 

由於登錄窗口沒有響應這個的AppleScript,我試圖bash的太多,但沒有什麼工作。任何幫助都會很棒。 :(

回答

0

這將是有用的知道你真的想在這裏做什麼。登錄時支持注入同步事件的方式是authentication hook。這比試圖「在LoginWindow前運行。「中斷loginwindow的問題是你需要處理註銷和快速用戶切換的情況,你也可以使用loginwindow的LoginHook在登錄完成之前運行一個腳本,但是這些都是在用戶擁有輸入他們的憑據(在LoginHook的情況下,它是在證書被驗證之後)。

也就是說,放入LoginWindow之前的最佳位置是創建一箇舊式的SystemStarter守護進程在/Library/StartupItems。這些在loginwindow之前同步運行,但僅在初始啓動期間(不是在註銷或FUS期間)運行。

+0

我完全阻止用戶...不要擔心這個......我不能使用loginhook導致用戶登錄後也運行。我有3個帳戶A,B,C和A和B是管理員。 C是一個客戶帳戶,一旦用戶註銷就會刷新。當我的應用程序啓動時,它會詢問從我的網站獲取的令牌號碼。經過驗證。 我不想顯示loginwindow.instead,我想通過我的應用程序登錄C帳戶,而是通過applescript或bash或其他方式登錄。我希望現在你明白這個問題。 通過我的應用程序登錄來賓用戶而無需登錄窗口彈出 – 2011-06-02 20:52:24

+0

爲什麼不自動登錄來賓用戶,並使用上面提到的身份驗證掛鉤掛起登錄並獲取令牌,然後才允許它完成。這將繞過登錄窗口。管理員用戶可以使用快速用戶切換來遠離來賓帳戶。 – 2011-06-02 21:57:07

+0

你的意思是自動登錄儀式!沒有,這不適合我,因爲它以某種方式崩潰我的應用程序。此外,我想從應用程序內運行腳本,以便我可以爲1個情況下把來賓用戶和其他第二種情況下只顯示loginwindow ...我還沒有查找認證鉤..將看到n更新... Loginhook不能工作,因爲它的工作後,用戶已登錄,所以沒有問題..感謝您的回覆羅布 – 2011-06-02 23:19:24

相關問題