IPB

Bienvenue invité ( Connexion | Inscription )

> Comment changer l'icone d'un répertoire en applescript ?
Options
bruce_luc
posté 26 Oct 2006, 18:07
Message #1


Nouveau Membre


Groupe : Membres
Messages : 2
Inscrit : 6 Sep 2005
Membre no 45 306



Bonjour,

Je voudrais écrire un script qui fixe l'icone d'un répertoire à partir d'un fichier png.
Je veux automatiser un maximum d'étapes. Je n'y arrive pas... mais bon, je suis débutant en applescript.
J'ai réussi à faire :

CODE

tell application "Finder"
    set icon_image_file to file "mon_icon.png" of folder "Users:Users:luc:Desktop"
    set testdir to folder "test" of folder "Users:Users:luc:Desktop"
    
    -- save icon_image with itself as icon
    set icon_image_file_string to icon_image_file as string
    tell application "Image Events"
        launch
        set icon_image to open file icon_image_file_string
        save icon_image with icon
        close icon_image
    end tell
    -- ici on a bien le fichier png icon_image_file qui a changé d'icone

    -- NE FONCTIONNE PAS
    set icon of testdir to icon of icon_image_file
    
end tell
end run


Comme vous pouvez le voir, je n'arrive pas copier l'icone de icon_image_file sur un répertoire (sur un fichier non plus d'ailleurs).
J'ai cherché partout le web, et je n'ai rien trouvé si ce n'est des solutions qui ne fonctionnent pas.

Avez-vous des idées ?

Luc.

Ce message a été modifié par bruce_luc - 26 Oct 2006, 18:44.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s) (1 - 4)
bruce_luc
posté 28 Oct 2006, 11:34
Message #2


Nouveau Membre


Groupe : Membres
Messages : 2
Inscrit : 6 Sep 2005
Membre no 45 306



Salut,

Voici la solution :

CODE

on run
    set icon_image_file to file "Users:Users:luc:Desktop:mon_icon.png" as alias
    set testdir to file "Users:Users:luc:Desktop:test" as alias
    
    my saveImageWithItselfAsIcon(icon_image_file)
    my copyIconOfTo(icon_image_file, testdir)
end run

on saveImageWithItselfAsIcon(icon_image_file)
    -- save icon_image_file with itself as icon    
    set icon_image_file_string to icon_image_file as string
    tell application "Image Events"
        launch
        set icon_image to open file icon_image_file_string
        save icon_image with icon
        close icon_image
    end tell
end saveImageWithItselfAsIcon

on copyIconOfTo(aFileOrFolderWithIcon, aFileOrFolder)
    tell application "Finder" to set f to aFileOrFolderWithIcon as alias
    -- grab the file's icon
    my CopyOrPaste(f, "c")
    -- now the icon is in the clipboard
    tell application "Finder" to set c to aFileOrFolder as alias
    my CopyOrPaste(result, "v")
end copyIconOfTo

on CopyOrPaste(i, cv)
    tell application "Finder"
        activate
        open information window of i
    end tell
    tell application "System Events" to tell process "Finder" to tell window 1
        keystroke tab -- select icon button
        keystroke (cv & "w") using command down (* (copy or paste) + close window *)
    end tell -- window 1 then process Finder then System Events
end CopyOrPaste



Merci à Yvan sur MacScripter...

Luc.

Ce message a été modifié par bruce_luc - 29 Oct 2006, 01:01.
Go to the top of the page
 
+Quote Post
L'ami Ricoré
posté 25 Jun 2008, 14:27
Message #3


Nouveau Membre


Groupe : Membres
Messages : 1
Inscrit : 25 Jun 2008
Membre no 116 718



Bonjour tout le monde,

je viens de lire cet applescript qui est super intéressant, et qui marche, mais j'aimerais savoir s'il est possible de se faire expliquer succinctement quelles fonctions sont utilisées, comment elles s'utilisent, en gros comment le script est fait (my copyorpaste etc), car j'aimerais bien comprendre ce script avant de l'utiliser.

Merci d'avance
Go to the top of the page
 
+Quote Post
Guest_JackJr300_*
posté 26 Jun 2008, 01:51
Message #4





Guests






Bonjour,

CITATION(L'ami Ricoré @ 25 Jun 2008, 14:27) [snapback]2710753[/snapback]

j'aimerais savoir s'il est possible de se faire expliquer succinctement quelles fonctions sont utilisées, comment elles s'utilisent, en gros comment le script est fait (my copyorpaste etc),

Voici le script francisé avec les explications dedans. smile.gif
CODE

on run
    set fichier_png to alias "Disque1:Users:jack:Desktop:Icon.png"
    set un_element to alias "Disque1:Users:jack:Desktop:dossier sans titre 2:"
    
    faire_une_icone(fichier_png) -- ceci appelle la fonction :  faire_une_icone()
    copie_et_colle_icone(fichier_png, un_element) -- ceci appelle la fonction : copie_et_colle_icone()
end run

on faire_une_icone(fichier) -- fonction qui fait une icone du fichier (l'image png)
    tell application "Image Events"
        launch
        tell (open fichier)
            save with icon
            close
        end tell
    end tell
end faire_une_icone

on copie_et_colle_icone(fichier_png, un_element)
    Copie_ou_colle(fichier_png, "c") -- ceci appelle la fonction : Copie_ou_colle()
    -- ceci va copier l'icone dans le presse-papiers, le "c" est la touche simulée
    
    Copie_ou_colle(un_element, "v") -- ceci appelle la fonction : Copie_ou_colle()
    -- ceci va coller l'icone du  presse-papiers dans la fenêtre information d'un élément,  le "v" est la touche simulé
end copie_et_colle_icone

on Copie_ou_colle(i, cv)
    tell application "Finder"
        activate
        open information window of i
    end tell
    tell application "System Events" to tell process "Finder" to tell window 1
        keystroke tab -- selectionne l'icone dans la fenêtre infos de l'élément qui est dans la variable i
        keystroke (cv & "w") using command down -- la variable cv contient le caractère "c" ou "v"
        -- simule la touche pomme +(c ou v), et simule pomme + w (ferme la fenêtre)
    end tell
end Copie_ou_colle

Éditer : le my avant l'appelle à la fonction n'est pas nécessaire, s’il n'est pas dans un tell bloc.

Ce message a été modifié par JackJr300 - 26 Jun 2008, 01:58.
Go to the top of the page
 
+Quote Post
McHerve
posté 26 Jun 2008, 14:05
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 709
Inscrit : 13 Aug 2003
Lieu : Cagnes-sur-Mer
Membre no 9 040



CITATION(JackJr300 @ 26 Jun 2008, 02:51) [snapback]2711357[/snapback]
Éditer : le my avant l'appelle à la fonction n'est pas nécessaire, s’il n'est pas dans un tell bloc.
MERCIIIIIIIIII! smile.gif
(je n'avais jamais su pourquoi certaines fois j'étais obligé de mettre un "my", je croyais bêtement à une différence entre AS et ASS wink.gif)
à+


--------------------
Pour DVD, iPad, HD, TV connectée, Western Digital, … iMovie & FCPX? MovieConverter-Studio 3.05 (11/05/2015)
Traiter les vidéos de vos caméscopes? …même en 50p comme 50i? …les ralentir? MovieCam
Une planche contact de vos vidéos? MovieIndex
Des petits Mickeys? v'là mon site pro
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 10th November 2025 - 23:31