Question

Nous avons un simple .app fait avec un éditeur AppleScript qui apparaît d'une boîte de dialogue d'affichage lorsqu'un utilisateur se connecte. Le problème est que de nombreux utilisateurs ignorent la case et n'appuyez pas sur "OK" pour le fermer. S'il est laissé ouvert, cela empêchera l'utilisateur de se déconnecter de l'ordinateur.

Existe-t-il un moyen d'empêcher la boîte de dialogue de maintenir le processus de connexion?

Était-ce utile?

La solution

2 choses auxquelles je peux penser: 1) Vous pouvez mettre une commande "Abandon après" sur la boîte de dialogue afin qu'elle soit automatiquement rejetée après un certain temps, par exemple 5 secondes ...

display dialog "Hello" giving up after 5

Ou vous pouvez vous écrire un script de déconnexion. Ce script sera exécuté lorsqu'un utilisateur vous déconnectera. Quelque chose comme ça fonctionnerait.

tell application "System Events"
    if exists process "ApplicationName" then
        set itExists to true
    else
        set itExists to false
    end if
end tell

if itExists then
    tell application "ApplicationName" to activate
    tell application "System Events" to keystroke return
end if

Google pour "Logout Hook" pour trouver comment exécuter un script à la déconnexion.

Autres conseils

Puis-je plutôt demander pourquoi vous ne modifiez pas simplement le code Applescript pour fermer automatiquement la boîte de dialogue après, disons, 5 minutes? Ce sera certainement plus facile que de "pirater" une connexion difficile dans le système.

display dialog "Hello World" buttons "Ok" giving up after (5 * 60)

Cette boîte de dialogue sera automatiquement fermée après 5 minutes par exemple. Assez longtemps pour que les utilisateurs le lisent, s'ils s'en soucient vraiment et les autres l'ignorent de toute façon, comme vous l'avez souligné dans votre question.

Malheureusement, l'affichage de la boîte de dialogue nécessite toujours l'action de l'utilisateur pour disparaître, à moins que la notification disparaisse d'elle-même en utilisant «abandonner après», sans qu'il ne le lise nécessairement.

En supposant que vous en avez besoin pour le lire, et si vous avez un contrôle sur les ordinateurs, vous pourrez utiliser, vous pourriez utiliser Grognement pour afficher vos notifications.

Il me vient à l'esprit que vous pouvez mettre la boîte de dialogue Afficher dans un gestionnaire d'inactivité, et s'ils cliquent réellement «OK», faites arrêter le script; S'ils ne cliquent pas «OK», utilisez «Abandon après» comme décrit dans les autres réponses pour le faire disparaître après autant de secondes que vous voulez, puis le remettre à nouveau au ralenti suivant. Cela pourrait être extrêmement ennuyeux et coure toujours le risque de bloquer la déconnexion si elles se déconnectent pendant la fin de la boîte de dialogue.

on idle
    --display the alert for 7 seconds
    display alert "Very Important Message" giving up after 7
    if the button returned of the result is "ok" then
        quit
    end if

    --idle for 90 seconds
    return 90
end idle

Cela fonctionne pour moi, forcer la déconnexion des utilisateurs. Désactiver «Rouvrir les fenêtres lors de la connexion» dans Mac OS X complètement et déconnectez la confirmation

tell application "System Events"
    keystroke "Q" using {command down, option down, shift down}
    quit
end tell
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top