Modifier icône d'un volume .dmg avec AppleScript

Lucas09Ldt

Membre confirmé
9 Février 2022
12
2
Bonjour,
J'ai à disposition une image disque (.dmg).
Lorsqu'elle est double-cliquée, un volume est monté.
Je souhaiterais savoir, si, en utilisant AppleScript, il est possible de modifier l'icône de ce volume, déjà créé, donc verrouillé.
Pourriez-vous m'aider ? Me donner un exemple de code ?
Merci par avance :)
 
Bonjour,

Le principe est simple:
-Monter le volume
-Demander lire les information de ce volume (cmd+i)
-sélectionner l'icone en haut à gauche de la fenêtre
-Faire un coller de l'image (.icn ou .png) de l'image choisie pour modifier cet icone. ou un simple glisser-déposer de l'image sur l'icone.
-Après cela l'icone est enregistrée définitivement lors de l'éjection du volume.

Donc à faire une fois pour toute, pas besoin de script.

Sinon faire en applescript du déroulement des actions décrites avec avant un copier de l'image à utiliser.
 
En 3 clics, c'est fait...

Capture-005.jpg Capture-006.jpg

...et pas besoin d'autre chose, puisque si tu utilises un script il faudra changer l'image.
 
  • J’aime
Réactions: Centaurdedé
@Locke :coucou:
On à poster en même temps, mais à priori il veux changer l'icone du volume, pas du DMG :) mais c'est kifkif !
 
@Locke :coucou:
On à poster en même temps, mais à priori il veux changer l'icone du volume, pas du DMG :) mais c'est kifkif !
Pas tout à fait, ça fera un gros pâté...

Capture-007.jpg

...mais ça gardera bien la nouvelle icône. ;)

De toute façon, un script ne fonctionnera pas pour changer l'icône du volume puisque le fichier .dmg est crypté.
 
  • J’aime
Réactions: Centaurdedé
Bonjour,
Je t'ai fait un petit script qui fait cela..
A son lancement il te demande de choisir si tu veux tagger (mettre une icone) sur un fichier ou sur un dossier ou sur un volume
- Choisir l'élément à tagger
-choisir le fichier (.png, .icn, .jpg) qui possède cette icone dans la fenêtre 'lire les informations"
-il fait un copier coller de l'icone.

Je t'ai mis quelques commentaires pour que tu puisses extraire les parties dont tu as besoins

Dis moi si c'est bon pour toi.

Bloc de code:
--Change icone du volume par l'icone du fichier choisi
repeat
    set nameList to {"Tagger un fichier", "Tagger un volume ou un dossier"}
    set choix to (choose from list the nameList with prompt "Sélectionner : " with title "Choix") as string
    if choix is "false" then exit repeat -- Bouton Annuler
    
    if choix is "Tagger un fichier" then
        set lechemin to choose file with prompt "Sélectionnez le fichier a tagger"
        --exit repeat
    end if
    if choix is "Tagger un volume ou un dossier" then
        set lechemin to choose folder with prompt "Sélectionnez le volume ou le dossier a tagger"
        --exit repeat
    end if
    
    set chemin to choose file with prompt "selectionner le fichier PNG source de l'icone"
    
    tell application "Finder"
        set cv to "c" --prépare la commande copier
        activate
        open information window of chemin -- ouvre fenetre info du fichier PNG
        activate
    end tell
    
    -- copie l'icone
    tell application "System Events" to tell process "Finder" to tell window 1
        keystroke tab -- selectionne icone bouton
        delay 0.5
        keystroke (cv & "w") using command down -- copie icone avec c et ferme fenetre avec w
        delay 0.5
    end tell
    
    --ouvre pour coller
    tell application "Finder"
        set cv to "v" --prepare commande coller
        activate
        open information window of lechemin --ouvre la fenetre info du volume cible
        activate
    end tell
    
    tell application "System Events" to tell process "Finder" to tell window 1
        keystroke tab -- selectionne l'icone
        keystroke (cv & "w") using command down -- colle icone avec v et ferme fenetre avec w
    end tell
    exit repeat
end repeat
 
Une petite question : la commande est la même pour un fichier ou pour un volume ? Quel intérêt de demander la nature du fichier au début du script ?
Pour pouvoir sélectionner un fichier la commande est: choose file
Bloc de code:
choose file with prompt "Sélectionnez le fichier a tagger"
pour un dossier ou un volume: choose folder
Bloc de code:
choose folder with prompt "Sélectionnez le volume ou le dossier a tagger"
Edit: dans le script c’était pour l’exemple car je ne sais pas si tu veux taguer le .DMG (un fichier) ou le volume monté.
 
Dernière édition:
Pourtant chez moi pas de problème !
Tu sélectionnes bien ton volume dans la barre de gauche ?
 
Désolé J'ai créer un .DMG , j'ai même testé sur un .DMG protégé par mot de passe, je monte le volume, puis je lance mon script, il me demande de sélectionner le volume, je le sélectionne dans la barre de gauche, puis le fichier icone source et tout fonctionne !
 
Je repose la question.
Pourquoi faire un script pour cela, qui n'est à exécuter qu'une seule fois.
Faire directement un copier coller de l'icone source sur l'icone de la fenêtre lire les information ou un simple glisser déposer du fichier source sur l'icone ...
 
Là je suis largué !
Tu parles de quoi? De modifier l´icône ou de créer un fichier .DMG ?

Pour modifier l’icone le script ci-dessus fait le job.

Pour créer un fichier .DMG en ligne de code, tu peux le faire avec un script Shell, regardes le man de hdutil.
 
  • J’aime
Réactions: Lucas09Ldt
@Lucas09Ldt
Ne mélange pas les serviettes avec les torchons, merci. Tu as fait une demande précise, tu as eu une réponse avec une solution. Si tu souhaites aborder la création d'un fichier .dmg, il te faudra créer un autre message.

Et gentiment dit, mieux vaut oublier le Terminal et utiliser tout simplement Utilitaire de disque qui fera très bien l'affaire avec la possibilité de le crypter. De plus, ton lien date de 2008 et ce n'est plus du tout d'actualité pour les commandes.
 
Bonsoir,

je n´ai pas de compte GitHub, je ne souhaite pas en avoir et je ne souhaite pas non plus être cité sur ce site !
merci …