2011-06-02 192 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

相关问题