Je suis nouveau dans Applescript et les MAC, bien que mon premier ordinateur soit un Apple II Plus et que je programme dans Apple Basic et Assembly.
Je l'utilise pour créer un bouton d'alarme "silencieux".
Nous avons un système en place qui via un appel URL envoie un message à un groupe d’ordinateurs sélectionnés, en l’occurrence ceux utilisés par nos responsables de la sécurité.
J'en ai écrit un similaire pour les PC utilisant le langage de script AutoIT. Lorsque quelqu'un clique sur ce programme, en ce qui concerne les personnes regardant l'écran, rien ne se passe. C'est silencieux à 100%. Quoique invisible à l’écran de l’ordinateur, IE a été lancé avec une taille réduite et masquée, une chaîne d’URL personnalisée, avec un message intégré, est ouverte, puis IE est fermé. Les ordinateurs des responsables de la sécurité reçoivent un message du système de messagerie Informacast et la sécurité répond en conséquence. À aucun moment, quiconque regarde l'écran du PC ne sait que quelque chose s'est passé. Tout est "silencieux". Juste comme une alarme silencieuse dans une banque.
Ma version MAC, écrite dans Applescript, fonctionne bien, sauf que l'appel de Safari est visible à l'écran lorsqu'il se produit. Ce n'est là que pendant quelques secondes que l'URL est chargée, puis la fenêtre Safari est fermée, mais cela ne prend que quelques secondes, et quiconque surveille l'écran saura que quelque chose s'est passé lors du déclenchement de l'alarme. Je dois empêcher tout affichage de Safari lors du lancement de Safari. J'ai besoin de le rendre "silencieux".
La partie du script qui ouvre Safari et charge l'URL est indiquée ci-dessous ...
tell application "Safari"
launch
open location AlertURLString (This is the variable that has the URL and embedded message in it)
delay 1
close window 1
end tell
J'ai essayé de placer la ligne suivante dans la routine "Tell" à différents endroits, avant "launch" après "launch", avant "open location" et après, etc. .
set miniaturized of window 1 to true
J'ai également joué avec des variations de la ligne suivante, mais j'ai toujours eu une erreur Applescript.
tell application "System Events" to set process "Safari" to false
Une dernière chose, il est possible que Safari ou un autre programme soit ouvert, peut-être pas en plein écran, etc. lorsque ce script est exécuté. que quelque chose se passait sur le système après avoir appuyé sur le "bouton d’alerte". La ligne "set miniaturized" en fonction de son utilisation minimiserait la fenêtre que nous ne souhaitons bien sûr pas.
Encore une fois, ce dont j'ai besoin, c'est de pouvoir lancer l'URL à 10000% en silence.
Merci d'avance à tous ceux qui sont capables d'essayer d'aider,
Ralph
la source
Réponses:
Vous ne pourrez pas le faire dans AppleScript: Safari ne fait quelque chose que sur des fenêtres ouvertes.
Vous devriez certainement regarder les scripts en ligne de commande comme
curl
.AppleScript pour appeler une commande shell a la forme suivante:
Donc, en utilisant votre
AlertURLString
vous voudriez quelque chose comme:Reportez - vous à la page de manuel curl pour plus de détails sur la procédure
curl
à suivre pour effectuer des tâches telles que les appels POST et PUT ou pour associer des charges utiles aux appels. C'est incroyablement puissant.la source
curl
le bon outil pour certains!si vous consultez la page de manuel curl (man curl), il ne semble pas y avoir de limite quant à la taille de l’URL. Vous voudrez peut-être utiliser les options -d ou --data.
la source