Gostaria de automatizar a troca rápida de usuário para um conjunto de máquinas. Minha solução atual e quebrada é esse trecho de código de script, adaptado dos scripts do Leopard / SL encontrados on-line:
set thePassword to "foo"
set N to "1027"
do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID " & N
delay 0.8
tell application "System Events"
keystroke thePassword
delay 1
keystroke return
end tell
A senha parece ter sido digitada com sucesso, mas keystroke return
falha ao conectar o usuário (a tela "vibra" para indicar uma tentativa com falha). O engraçado é que pressionar a tecla Enter manualmente completa o login (daí a minha afirmação de que a senha foi inserida com sucesso)
Alguma ideia?
Obrigado!
tab
pressionar para fora e, em seguida, o botão de login?Respostas:
Não sei dizer o que pode estar errado, mas aqui está uma solução alternativa de muitos anos atrás:
'diga ao aplicativo "System Events" para retornar o pressionamento de tecla' no Intel iMacs
Essencialmente, o autor desta postagem diz que, em um cenário muito semelhante, a chave de retorno somente acionaria com êxito um login nos PowerMac iMacs; em máquinas Intel, o script define o tempo limite de suspensão da tela como 1 minuto, aguarda 65 segundos e, de alguma forma, quando a tela estiver em suspensão, o "retorno de pressionamento de tecla" funciona. (!)
Parece horrível, mas talvez você possa adaptar algo viável a partir disso.
fonte
Parece haver duas versões principais do script flutuando.
O primeiro é semelhante ao seu, exceto que "retorno de pressionamento de tecla" é duplicado duas vezes ( origem ):
Alguém até descobriu que duas vezes não é suficiente:
Enquanto outra pessoa prefere essa solução, ela funcionará se você tiver uma lista de usuários com "Outros ..." exibido na janela de login:
(Respondida por um usuário não Mac)
fonte