Dossiers

Protéger un dossier grâce à Applescript.

Par Solune, le

Préparation



Que me faut-il ?



- un Mac,
- Applescript (livré avec tout les bons systèmes, MacOS par exemple :) ),
- un dossier dossier à protéger,
- un complément de pilotage, à récupérer [a="http://m4edownload.free.fr/FileVisibility.sit[/a2]un complément bien utile[/c2]ici (1, 186 octet).

Le complément ne fonctionne pas sous OS X :'( et de ce fait le script non plus :''( .

Tout d'abord :



Vérifiez que vous vous avez bien placé le complément de pilotage téléchargé ci-dessus dans le dossier du même nom figurant dans votre dossier système.
Vérifiez que l'extension "Scripts de dossiers" figure bien dans celles chargées au démarrage , dans le cas contraire installez-la à l'aide de votre CD d'installation de MacOS.

Vous êtes prêt.

Principe de fonctionnement



Qu'allons nous faire exactement ?
Nous somme sur le point de réaliser 2 scripts qui protégeront un dossier. Mais visualisons leurs fonctionnement global :

Le premier, le plus important, sera une mini-application. Quand vous la lancerai, elle ouvrira une boîte de dialogue qui réclamera un mot de passe. Une fois celui-ci tapé, une vérification se déclenchera. Si le mot de passe est bon, le script (ou plus précisément le Finder pour les vertueux) rendra votre dossier visible (préalablement rendu invisible par vos soins). Puis il ouvrira la fenêtre du dossier que vous pourrai alors utiliser normalement. Si le mot de passe est faux le script beepera et affichera un dialogue de refus.

Au deuxième maintenant. Une fois que vous avez utilisé votre dossier à votre convenance, vous refermez sa fenêtre et... Il devient invisible de nouveau au bout de quelques secondes ! Car le deuxième script est compilé et est attaché à votre dossier. Ce script détecte la fermeture de la fenêtre et déclenche l'invisibilité.

La programmation



Je donne le listing ligne par ligne comme il doit apparaître dans l'éditeur de scripts (sauf pour les tabulations mais c'est sans importance) avec mes explications en italique en dessous (bien sûr il ne faut pas les recopier). Tout cela est entrecoupé par des marches a suivre. A la fin de cet article vous trouverez le listing complet.

Voici pour le premier script :



Premières lignes de code :
on run {}
tell application "Finder"
activate
Si vous ne comprenez pas la signification de ces lignes, je vous renvoie aux articles de M4E précédents.

Bon maintenant, que nous faut-il ?
Une boîte de dialogue où on peut entrer du texte et un bouton pour valider le texte. Pour cela, ouvrez le dictionnaire de "Compléments standard" se trouvant dans le dossier "Complément de pilotage".

Protéger un dossier grâce à Applescript.


Dans ce dictionnaire ce trouve une commande qui sert à fabriquer des boîtes de dialogue, pile ce que l'on cherche.
Après avoir cliqué sur "display dialog" (en surbrillance bleue dans l'image) vous obtenez une explication de la commande et ses options.
Nous avons besoin des options :
- [default answer texte] -- la phrase par défaut à éditer
- [buttons liste] -- Une liste avec au maximum 3 bouton
- [default button nombre ou texte] -- le nom ou le nombre du bouton par défaut
- [with icon stop/note/caution] -- ... ou alors un de ces icons du système

Le texte à afficher est "Tapez votre mot de passe :" pour savoir quoi faire :). Le bouton se nommera "OK" et sera le boutton par défaut (celui qui est actionné quand on appuie sur entrée). Tout cela sera accompagné d'un icône rouge avec une main dedans, soit l'icône Stop du système.

Ligne de code :
display dialog "Entrez le mot de passe :" default answer "" buttons "OK" default button 1 with icon stop
Les guillemets de default answer restent vide du fait qu'on ne veut pas que dans la ligne il apparaisse du texte. Si il ne vous faut qu'un bouton la formule sera : buttons "bouton1" sinon elle sera de la forme : buttons {"bouton1","bouton2"} .

Ensuite il faut récupérer le texte entré dans la boîte de dialogue.

Protéger un dossier grâce à Applescript.


Pour cela dans la liste des commandes, en italique, se trouve une "Class" qui se nomme "dialog reply". Après avoir cliqué dessus, on peut y lire :
text returned texte -- texte entré(présent seulement si 'réponse par défaut' à été demandé)

Pour faire la vérification, nous allons utiliser la célèbre fonction if.

Lignes de code :
if the text returned of the result is "votre mot de passe" then
Ici on compare le texte entré avec "votre mot de passe" à l'aide de la commande is. Directement après, il faut placer les commandes à exécuter si le mot de passe est correct.

ATTENTION : Applescript ne fait pas ici la différence entre les majuscules et les minuscules. Pour lui "VOTRE Mot De Passe" est identique à "votre mot de passe".

Donc dans le cas où le mot de passe est exact, nous allons entrer la localisation du dossier dans une variable qui se nomme DossierProtege. Dans votre Mac la localisation est nommée alias. Pour trouver celle-ci il faut tout d'abord commencer par le nom du disque puis par les noms des dossiers petit à petit, ceux-ci séparé par des : (essayez donc de mettre des : dans un nom de dossier ou fichier).

Par ex :

Protéger un dossier grâce à Applescript.


Ici la localisation sera :
"Mac DisqueDur:dossier quelconque:dossier pouet pouet:dossier à protéger:"

Ligne de code :
set DossierProtege to alias "Mac DisqueDur:dossier quelconque:dossier pouet pouet:dossier à protéger:"
la commande set sert en même temps à déclarer la variable et à lui attribuer une valeur.

Donc ensuite, il faut faire réapparaître votre dossier qui est invisible. Un petit tour dans le dictionnaire du complément de pilotage que je vous ait fait téléchargé : File Visibility.

Protéger un dossier grâce à Applescript.


Pour faire apparaître un dossier ou un fichier, il s'agit de la commande :
- make file visible la spécification du fichier --le fichier à rendre visible

Ligne de code :
make file visible DossierProtege
Ici la spécification du fichier c'est l'alias du dossier que l'on veut protégé que nous avons placé dans la variable DossierProtege.

Reste plus qu'a ouvrir la fenêtre du dossier (=> la commande se trouve dans le dictionnaire du finder, allez chercher vous même).

Ligne de code :
open folder DossierProtege
Aucun commentaire :).

La boucle où le mot de passe est exact est donc finie. Maintenant dans le cas où il est inexact.

Lignes de code :
else
Else va avec if. Cela ouvre une boucle si la fonction testé avec if est fausse(false).
beep
Pas obligatoire, mais tellement amusant. Le Mac va faire beep :).

Pour signaler qu'il s'agit d'un mauvais mot de passe, le Mac va faire beep et nous allons afficher un message d'explication. Pour le message la commande sera l'indispensable display dialog situé dans le dictionnaire de ... Un beau cadeau tiré au sort avec ceux qui m'enverrons un mail avec les mots qu'il faut placer à la place des ... !

Lignes de code :
display dialog "Votre mot de passe est faux !" buttons "Mince" default button 1 with icon caution
Voilà le message avec un bouton qui se nomme "Mince" :).
end if
Fin de la boucle if
end tell
Fin de la boucle tell
end run
Fin d'exécution du script

La programmation de ce script s'achève ici. Cliquez sur le bouton Vérifier (en haut à droite). En cas d'erreur débrouillez vous avec le listing à la fin de l'article car normalement il ne peut s'agir que de faute de frappe. Si vous avez une erreur persistante, [a="mailto:solune@mac4ever.com[/a2]c'est mon e-mail ![/c2]mailez-moi. Il faut l'enregistrer , donc dans le menu Fichier choisissez l'onglet Enregistrer-sous... et donnez lui un nom et le format Script Compilé. Mais attention cet enregistrement ne doit pas tomber dans les mains de personnes mal intentionné car votre mot de passe est visible ! Il sert juste au cas où vous voudriez changer votre mot de passe ou voir la source du script. Stockez-le dans le dossier protégé par exemple. Pour pouvoir utiliser votre script sans risque que l'on lise votre mot de passe , dans le menu Fichier choisissez l'onglet Créer un exécutable...(c'est une version où on ne peut pas lire la source) et donnez lui un nom et le format Mini-application classique et les options Rester en arrière-plan et Ne pas afficher l'écran de démarrage. Cet enregistrement, placer-le où vous voulez car il s'agit de celui où vous double-cliquerez pour rendre visible votre dossier.

Voilà pour ce premier script. Et non, c'est pas fini, il y a encore du boulot !

Le deuxième script :



Passons à la programmation du deuxième script dont j'ai donné le fonctionnement plus haut.
Celui-ci est plus simple car il possède 3 lignes.

Lignes de code :
on closing folder window for DossierProtege
la commande est expliquée dans l'image ci-dessus. Etant donné que l'on va associer le script avec le dossier à protégé, la variable DossierProtege prend directement la valeur de l'alias du dossier
tell application "Finder" to make file invisible DossierProtege
C'est une forme rapide quand on n'a qu'une seule commande à faire exécuter par le finder.
end closing folder window for
C'est la fin :).

La programmation de ce script s'achève ici. Cliquez sur le bouton Vérifier (en haut à droite). En cas d'erreur débrouillez vous avec le listing à la fin de l'article car normalement il ne peut s'agir que de faute de frappe. Si vous avez une erreur persistante, [a="mailto:solune@mac4ever.com[/a2]c'est mon e-mail ![/c2]mailez-moi. Il faut l'enregistrer , donc dans le menu Fichier choisissez l'onglet Créer un exécutable...(pour la source vous repasserez :) ) et donnez lui un nom et le format Script Compilé, je vous conseille de l'enregistrer dans le dossier Scripts du Dossier Système. Vous pouvez quittez l'Editeur de Scripts.

Voilà pour ce deuxième script.

Mise en fonctionnement



Reste une petite manipulation à faire. Appuyez sur contrôle et cliquez sur le dossier à protéger pour afficher les menus contextuels. Choisissez l'onglet Associer un script de dossier. Puis choisissez le deuxième script réalisé.
Ouvrez votre dossier puis fermez-le. Miracle au bout de quelques secondes, il disparaît.

Voilà tout est prêt.

Pour le rendre visible à nouveau et accessible à toutes les applications utilisez le premier script.

Vous venez de réaliser un script.

Le listing



Voilà le listing du premier script :



on run {}
tell application "Finder"
activate
display dialog "Entrez le mot de passe :" default answer "" buttons "OK" default button 1 with icon stop
if the text returned of the result is "votre mot de passe" then
set DossierProtege to alias "Mac DD:Pouet pouet:par exemple"
make file visible DossierProtege
open folder DossierProtege
else
beep
display dialog "Votre mot de passe est faux !" buttons "Mince" default button 1 with icon caution
end if
end tell
end run

Et voici le listing du deuxième script :



on closing folder window for DossierProtege
tell application "Finder" to make file invisible DossierProtege
end closing folder window for

Attention :
Si vous faite du copier-coller vous aurez à remettre les parenthèses en utilisant celles de la touche 3.

Incogni supprime vos traces !

Incogni supprime vos traces !

-60% sur Incogni, qui supprime vos traces sur internet ! Essayez-le gratuitement ou profitez de la promo !

Dernières publications

Tim Cook a reçu Elon Musk à Apple Park, sous fond de menaces autour de Twitter

Tim Cook a reçu Elon Musk à Apple Park, sous fond de menaces autour de Twitter

La petite guéguerre par tweet interposés que se livrent Tim Cook et Elon Musk (bon, d'accord, surtout du côté d'Elon) a finalement abouti à une rencontre entre les deux CEO à Apple Park aujourd'hui.
4
iOS 16.1.2 est disponible (encore quelques bugs à corriger)

iOS 16.1.2 est disponible (encore quelques bugs à corriger)

6
L'enceinte Bluetooth Soundcore Mini à 23€ (-20%), un cadeau accessible pour les fêtes

L'enceinte Bluetooth Soundcore Mini à 23€ (-20%), un cadeau accessible pour les fêtes

France : des coupures d'internet et de téléphone à venir pour cet hiver ?

France : des coupures d'internet et de téléphone à venir pour cet hiver ?

C'est la question du moment, à laquelle il est aussi difficile d'échapper qu'un tweet d'Elon Musk ! Y aura-t-il des pannes d'internet et de téléphone cet hiver avec les coupures de courant annoncées ?
15
Les fonctions d'accessibilité d'Apple mises en avant dans une vidéo pleine d'énergie

Les fonctions d'accessibilité d'Apple mises en avant dans une vidéo pleine d'énergie

La vidéo du jour est une nouvelle publicité débordant d'enthousiasme mettant en avant diverses manières de dépasser des situations de handicap, parfois à l'aide d'un appareil Apple.
Kindle Scribe : la première liseuse d'Amazon dotée d'un stylet est disponible dès 369€

Kindle Scribe : la première liseuse d'Amazon dotée d'un stylet est disponible dès 369€

Amazon annonce aujourd'hui la disponibilité sur notre territoire de ce nouveau modèle de Kindle aux capacités inédites.
2

Des iPhone 15 plus résistants grâce au nouveau verre Gorilla Glass ?

Des iPhone 15 plus résistants grâce au nouveau verre Gorilla Glass ?

1
Le Spotify Wrapped 2022 dresse votre profil musical

Le Spotify Wrapped 2022 dresse votre profil musical

1
Un premier benchmark décevant pour la puce M2 Max ?

Un premier benchmark décevant pour la puce M2 Max ?

Un premier score de benchmark pour l'attendue puce M2 Max d'Apple a été publié sur la toile.
14
Un scooter électrique chez le français Mash Motorcycles pour 2023

Un scooter électrique chez le français Mash Motorcycles pour 2023

Le constructeur français Mash Motocycles se lance sur le marché du scooter électrique avec un modèle prévu pour 2023.
1
L’app française « Compte à rebours Noël 2022 », un calendrier de l’avent sur iPhone !

L’app française « Compte à rebours Noël 2022 », un calendrier de l’avent sur iPhone !

6
Il achète 300 iPhone en Apple Store et s’en fait voler la moitié en sortant…

Il achète 300 iPhone en Apple Store et s’en fait voler la moitié en sortant…

Dans la rubrique faits divers, un homme âgé de 27 ans -mais dont l’identité n’a pas été communiquée- s’est rendu à l’Apple Store Fifth Avenue de New York pour y acheter 300 iPhone.
11
Tim Cook craint des réformes légales de l'App Store (sideloading)

Tim Cook craint des réformes légales de l'App Store (sideloading)

9
Face aux incertitudes d’Elon Musk, Tapbots (TweetBot) prépare un client pour Mastodon

Face aux incertitudes d’Elon Musk, Tapbots (TweetBot) prépare un client pour Mastodon

3
Comment ajouter un emoji à côté de l'horloge de l'iPhone ?

Comment ajouter un emoji à côté de l'horloge de l'iPhone ?

Le mode Concentration de l'iPhone permet quelques personnalisations supplémentaires, et notamment d'afficher un petit émoji sur l'écran d'accueil.
2
Apple Pay pourrait enfin arriver aujourd’hui en Corée du Sud

Apple Pay pourrait enfin arriver aujourd’hui en Corée du Sud


-60% sur Incogni, l'outil qui vous permet de supprimer vos traces sur internet !

-60% sur Incogni, l'outil qui vous permet de supprimer vos traces sur internet !

Inscrivez-vous avant le 4 décembre 2022 et obtenez 60% de réduction à l'occasion du Black Friday.
MacBook Pro : Apple transige à 50 millions de dollars pour le clavier Papillon

MacBook Pro : Apple transige à 50 millions de dollars pour le clavier Papillon

2
MacBook Air M2 dès 1349€, MacBook Pro 14" M1 dès 1439€, iMac M1 dès 1419€

MacBook Air M2 dès 1349€, MacBook Pro 14" M1 dès 1439€, iMac M1 dès 1419€

1
Les caméras Eufy enverraient des photos privées sur des serveurs, même avec Cloud désactivé

Les caméras Eufy enverraient des photos privées sur des serveurs, même avec Cloud désactivé

Anker est depuis quelques années déjà, une marque reconnue par la qualité de ses produits et le sérieux de ses logiciels associés.
10

Commentaires

Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.

13 commentaires
Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.

Suivez-nous !