Dans Applescript, comment lancer Safari «Ouvrir silencieusement» l’URL puis fermer la fenêtre invisible de Safari

0

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

Ralph
la source
10000% hmmmm ...
Deesbek

Réponses:

4

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:

set variableName to do shell script "command"

Donc, en utilisant votre AlertURLStringvous voudriez quelque chose comme:

set curlOutput to do shell script "curl '" & AlertURLString & "'"

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.

Matthieu Riegler
la source
Le bon outil pour le bon travail et curlle bon outil pour certains!
Ian C.
J'étais sur le point de dire curl aussi
Scott Earle
Merci à tous, Ian, Matthieu, Scott, Deesbek et tous ceux qui ont essayé d’aider. Curl semble être la solution. Cependant, la syntaxe donnée pour l'utiliser ne fonctionnait pas. J'ai eu un autre exemple que j'ai pu utiliser pour que cela fonctionne, mais mon "message" est maintenant limité à 255 caractères. Sur le PC, je n'ai pas cette limite. Je ne suis pas sûr que cette réponse va à tous ceux qui ont aidé, et je ne peux utiliser la touche « retour » , donc je vais essayer une autre option pour expliquer plus merci encore pour tous ceux qui ont aidé..
Ralph
0

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.

Leland
la source