Bonjour,
Voilà je voulais savoir avant de taper des lignes de commandes, s'il était possible de faire un script qui me permettrait d'associer à un dossier une image présente dans ce même dossier.
Merci de votre aide.
Bonjour,
Voilà je voulais savoir avant de taper des lignes de commandes, s'il était possible de faire un script qui me permettrait d'associer à un dossier une image présente dans ce même dossier.
Merci de votre aide.
personne n'est capable de me dire si cela est possible ou non ?
Si vous avez d'autres suggestion pour le faire n'hésitez pas, ce sujet est ouvert tant qu'il reste dans le sujet.
Merci d'avance pour votre aide
Bonjour à tous,
Je reviens après avoir posté ce premier message il y a bien longtemps. Sauf que là je reviens avec un script
Mais vous l'avez compris j'ai un soucis.
Alors ce script fonctionne, mais il y a un truc que je ne comprend pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 on run set icon_image_file to file "Users:nekcorp:Developpement:AppleScript:Action_Folder:image.jpg" as alias set testdir to file "Users:nekcorp:Developpement:AppleScript:Action_Folder:Folder" 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
Les deux premières lignes me permettent de définir le chemin de mon image et celui du dossier auquel je souhaite changer l'icône par l'image.
Sauf que lorsque je met l'image dans le dossier Folder, le programme fonctionne, mais il ne me change pas l'image du dossier Folder mais celui de l'image elle même (aucun intérêt vous l'aurez compris).
En fait j'ai déjà tout mes dossiers avec les images à l'intérieure (+ de 800) et je souhaite pouvoir que ce script fonctionne sans devoir bidouiller.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 set icon_image_file to file "Users:nekcorp:Developpement:AppleScript:Action_Folder:Folder:image.jpg" as alias set testdir to file "Users:nekcorp:Developpement:AppleScript:Action_Folder:Folder" as alias
Merci pour votre aide
Bonsoir Nekcorp,
Voici un script qui fonctionne pour toute image / dossier sélectionnés.
Il cherche le fichier "Image.jpg" qui se trouve dans le dossier sélectionné.
En commentaire, j'ai aussi mis la version qui demande la sélection du fichier image (lignes 3 et 4 qui remplacent alors les lignes 7 et 8).
Pour être complet, il faudrait simplement ajouter un test d'existence du fichier Image.jgp dans le dossier (pour éviter une erreur si absent !).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 set Dossier to choose folder "Sélectionner un dossier" -- si tu veux sélectionner le fichier Image --set Fichier_Image to choose file "Sélectionner une image" -- si tu veux prendre le fichier Image.jpg qui est dans le dossier set Fichier_Image to ((Dossier as string) & "Image.jpg") as alias tell application "Image Events" to set the clipboard to (read Fichier_Image as JPEG picture) tell application "Finder" activate openinformation window of folder (Dossier as text) end tell delay 1 tell application "System Events" keystroketab keystroke "v" usingcommand down end tell tell application "Finder" to close front window
J'ai constaté une certaine lenteur lorsque le fichier Image était une photo de plusieurs Méga...je ne pense pas que ce soit raisonnable d'avoir de telle images pour des icônes !
Cordialement
Merci de ta réponse et pour ton script. Cependant j'ai voulu le tester mais j'ai un message d'erreur lorsque je veux l'enregistrer (je ne le lance même pas).
une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Erreur de syntaxe fin de ligne, etc. prévu mais nom de classe trouvé.
merci d'avance
Bonjour,
Ce n'est pas la première fois que cela se produit depuis que Developpez.com à mis à jour le site (qui est plus beau !).
En effet lors d'un copier/coller de l'éditeur AS vers les balises codes d'une réponse sur le site, des espaces sautent parfois.
Il faut que je prenne l'habitude de relire le code ainsi copié/collé, même si il est correct sur mon éditeur AS.
Je vois 3 espaces qui ont été omis lors du copié/collé :
ligne 14 : il manque un espace entre "open" et "information"
ligne 18 : espace manquant entre "keystroke" et "tab"
ligne 19 : espace manquant entre "using" et "command"
Pourtant les couleurs des mots confirment bien que le script a été compilé sur mon éditeur AS sans problème...
Avec ces 3 espaces, cela devrait rentrer dans l'ordre. Désolé.
Je me suis par ailleurs demandé si tu ne souhaitais pas avoir un dossier principal, avec des 800 dossiers que le script doit traiter. on peut alors faire une boucle sur chaque dossier...Enfin, si tu as besoin...c'est faisable !
Tiens nous informé !
Cordialement
PS : petite astuce :si l'éditeur AS donne une erreur de compilation, il sélectionne en général le mot ou le caractère qui lui pose problème. Pas toujours, ..mais souvent !
Je reviens vers vous.
Donc effectivement j'ai corrigé les problèmes d'espaces et ça fonctionne. Si je connaissais ce langage ça m'aurait sauté aux yeux, mais je ne le maitrise pas.
Alors oui effectivement tout mes dossiers sont dans un dossier principal. De plus dans ce dossier j'ai deux images qui se nomme respectivement Poster-TitreDuDossier.jpg et Capture-TitreDudossier.jpg.Je me suis par ailleurs demandé si tu ne souhaitais pas avoir un dossier principal, avec des 800 dossiers que le script doit traiter. on peut alors faire une boucle sur chaque dossier...Enfin, si tu as besoin...c'est faisable !
Moi ce qui m'interesse c'est de récupérer Poster-TitreDuDossier.jpg pour l'associer à mon dossier.
donc je le vois comme ça.
Boucler sur chaque dossier présent dans le dossier principal.
Récupérer le nom de chaque dossier pour créer les chemins dans lesquels se trouvent les jpg et ainsi les associer aux dossiers.
Je vais essayé de coder un truc ce soir et je posterai mon code (fonctionnel ou non) pour avec des retours où de l'aide.
Encore merci pour ta contribution
Bonsoir,
Ce que tu décris est faisable en partant du code déjà en place. la méthode que tu indiques est parfaite.
Il faut encadrer le code actuel par une boucle sur tout les "folder items" et remplaçant le "image.jpg" par quelque chose comme "Poster-" & name of item & ".jgp" (item prendra la valeur du dossier de la boucle.
Je ne te donne pas le code intégral car tu aura le plaisir de le mettre au point toi-même et c'est comme cela que l'on apprend le plus vite !
Si toutefois tu as des questions, n'hésite pas. Cependant je ne pourrai y répondre avant jeudi soir...
Courage !
Partager