IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Modifier des raccourcis .lnk


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Par défaut Modifier des raccourcis .lnk
    Bonjour à tous,

    J'ai la problèmatique suivante : Je dois réaliser un script VBS pour rechercher dans le dossier courant et ses sous dossiers les raccourcis .lnk. Pour chacun je dois vérifier où se trouve le fichier sur lequel ils pointent et si nécessaire modifier le lien.
    En somme on a déplacer énormément de fichier d'un serveur à l'autre et pour certains pc on aurait besoin de rediriger les liens.

    Pour le moment j'ai fais le code suivant, j'arrive à explorer récursivement et à consulter les types des fichiers :
    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
    39
    40
    41
    42
    Option Explicit
     
    Dim courant_Dir
    courant_dir =  WScript.ScriptFullName 
    courant_dir = left(courant_dir, InStrRev(courant_dir, "\"))
     
    explore_dossier(courant_dir)
    wscript.quit
     
     
     
     
    Sub explore_dossier(Dir_path)
        Dim Dir
    	Dim collection_Dir, courant_Dir
    	Dim collection_Fichiers, courant_Fichier
    	Dim oFso, WshShell, oShellLink
     
    	Set oFso = CreateObject("Scripting.FileSystemObject")
    	Set WshShell = WScript.CreateObject("WScript.Shell")
     
     
    	msgbox Dir_path
    	Set Dir = oFso.getFolder(Dir_path)
    	Set collection_Dir = Dir.SubFolders
    	Set collection_Fichiers = Dir.Files
     
     
    	For each courant_Dir in collection_Dir
    		explore_dossier(courant_Dir.Path)
    	Next
     
    	For each courant_Fichier in collection_Fichiers
    		if (courant_fichier.type = "Raccourci") then  
    			'Partie du code qui ne fonctionne pas
    			'Je ne peux accéder aux attributs suivants...
    			msgbox courant_fichier.type
    			msgbox courant_fichier.TargetPath
    			msgbox courant_fichier.WorkingDirectory
    		end if
    	Next
    end Sub
    Voilà mon souci, je n'arrive pas à accéder aux attributs des raccourcis. Les méthodes/attributs ne sont pas gérés. J'aimerais avoir un coup de pouce là dessus.
    Sur internet j'ai trouvé de quoi créer mais pas modifier les raccourcis. Est-ce que je dois caster le "courant_fichier" ? Si oui comment ?

    Bref merci d'avance pour vos réponses.

    [EDIT] D'ailleurs je pourrais recréer tout simplement les raccourcis, mais avant cela j'aurais besoin de récupérer la valeur des attributs du premier raccourci... Donc le problème reste entier :S

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Par défaut
    En fait problème résolu ^^
    J'ai mal utiliser et mal compris comment on exploitait les raccourcis.

    Donc je donne mon script (ça peut servir).
    Script pour explorer recursivement le dossier, contenant le script, ses sous-dossiers et modifier les raccourcis pour ne plus pointer sur un "serveur1" mais sur le "serveur2".

    Bien sur il fonctionne mais sous réserve ^^
    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
    39
    40
    41
    42
    43
    44
    45
    46
    Option Explicit
    CONST serveur1 = "Orion"
    CONST serveur2 = "Venus"
     
     
    Dim courant_Dir
    courant_dir =  WScript.ScriptFullName 
    courant_dir = left(courant_dir, InStrRev(courant_dir, "\"))
     
    explore_dossier(courant_dir)
    wscript.quit
     
     
     
     
    Sub explore_dossier(Dir_path)
        Dim Dir
    	Dim collection_Dir, courant_Dir
    	Dim collection_Fichiers, courant_Fichier
    	Dim oFso, WshShell, Shortcut
     
    	Set oFso = CreateObject("Scripting.FileSystemObject")
    	Set WshShell = WScript.CreateObject("WScript.Shell")
     
     
    	msgbox Dir_path
    	Set Dir = oFso.getFolder(Dir_path)
    	Set collection_Dir = Dir.SubFolders
    	Set collection_Fichiers = Dir.Files
     
     
    	For each courant_Dir in collection_Dir
    		explore_dossier(courant_Dir.Path)
    	Next
     
    	For each courant_Fichier in collection_Fichiers
    		if (courant_fichier.type = "Raccourci") then 
    		    msgbox courant_fichier.path
    		    Set Shortcut = WshShell.CreateShortcut(courant_fichier.path)
    			Shortcut.TargetPath = replace(Shortcut.TargetPath, Serveur1, Serveur2)
    			Shortcut.WorkingDirectory = replace(Shortcut.WorkingDirectory, Serveur1, Serveur2)
     
    			Shortcut.save			        
    		end if
    	Next
    end Sub

  3. #3
    Invité de passage
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 1
    Par défaut Conseil d'utilisation
    Bonjour,

    Je n'arrive pas à faire fonctionner ce code. Quelqun pour me conseiller ?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Manipuler des raccourcis .lnk
    Par Mateos81 dans le forum WinDev
    Réponses: 2
    Dernier message: 03/06/2014, 19h57
  2. Résoudre des raccourci Windows (.LNK)
    Par lvr dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 19/09/2013, 00h38
  3. [Windows]lecture des fichier lnk (raccourcis)
    Par Tiaps dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 21/10/2009, 19h27
  4. Modifier le raccourci-clavier d'un raccourcie !?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 16/06/2004, 17h02
  5. désactivation des raccourci clavier
    Par Arnaud-h dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/06/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo