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 :

Suppression/création de shortcut sur le bureau


Sujet :

VBScript

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 86
    Points
    86
    Par défaut Suppression/création de shortcut sur le bureau
    Salut,
    j'essaye de créer et supprimer des shortcuts sur le bureau via script. J'ai un comportement vraiment étrange. J'ai ecris 2 fonctions, une pour créer un shortcut, l'autre pour en effacer :

    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
     
    Function addShortcutToDesktop(pstrUrl, pstrName)
        On Error Resume Next
     
        Dim objShortcut
        Dim strDesktop
     
        strDesktop = objShell.SpecialFolders("Desktop")
        Set objShortcut = objShell.CreateShortcut(strDesktop & "\" & pstrName & ".url")
        objShortcut.TargetPath = pstrUrl
        objShortcut.Save
     
        Set objShortcut = Nothing
    End Function
     
    Function removeShortcutFromDesktop(pstrUrl)
    	Dim custFile
    	Dim strDesktopFolder, desktopFolder, custFolder, extension
    	Dim fullname, shortcut, shortTarget
     
    	strDesktopFolder = objShell.SpecialFolders("Desktop")
    	Set desktopFolder = objFSO.GetFolder(strDesktopFolder)
    	Set custFolder = desktopFolder.Files
     
    	For Each custFile in custFolder
    		extension = objFSO.GetExtensionName(LCase(custFile.name))
    		If extension = "url" then
    			fullname = objFSO.GetAbsolutePathName(custFile)
     
    			Set shortcut = objShell.CreateShortcut(fullname)
    			shortTarget = shortcut.TargetPath
     
    			If InStr(shortTarget, pstrUrl) then
    				Dim myFileToDelete
    				Set myFileToDelete = objFSO.GetFile(fullname)
    				myFileToDelete.Delete
    				'WScript.Echo "deleting shorcut to " & pstrUrl
    				WScript.sleep 5000
    			End If
    		End If
    	Next
    End Function
    Ensuite j'appel ce code depuis un peu plus haut dans le meme fichier que celui qui contient les 2 fonctions.

    Si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    addShortcutToDesktop "http://intranet", "Intranet"
    sans surprise il me créé un shortcut intitulé Intranet sur le bureau, et ce shortcut fonctionne correctement. Maintenant je mets ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    removeShortcutFromDesktop "http://intranet"
    et ca me l'efface. Si le shortcul n'est pas là, ca ne fait rien. Enfin je mets ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    removeShortcutFromDesktop "http://intranet"
    addShortcutToDesktop "http://intranet", "Intranet"
    et là, il commence par effacer le shortcut, et ensuite il crée un raccourci non fonctionnel: "The target of this Internet Shortcut is not valid". Je remarque que l'icone du shortcut n'est pas le meme que d'habitude, et il manque l'onglet "Web document" si je regarde les propriétés de ce shortcut.

    Je ne comprends vraiment pas pourquoi les 2 commandes exécutées à la suite posent probleme alors qu'executé individuellement, elles ne posent pas de probleme.

    Je suis preneur de toute suggestion
    merci

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    en fait le probleme est clairement l'execution de la fonction remove avant la fonction addShortcut, mais je ne vois pas ce qui peut bloquer... J'ai essayé de rajouter dans le remove ceci juste apres le delete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set objShell = Nothing
    Set objShell = CreateObject("WScript.Shell")
    mais ca ne change rien

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Ne serait-ce pas à cause du navigateur utilisé ?!?!?!
    Si tu appelles 2 fois les 2 fonctions(l'une à l suite de l'autre), le problème ne se pose plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    removeShortcutFromDesktop "http://intranet"  
    addShortcutToDesktop "http://intranet", "Intranet"
    removeShortcutFromDesktop "http://intranet"
    addShortcutToDesktop "http://intranet", "Intranet"

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    le navigateur ? non je ne vois pas quel role il joue. Je me contente d'executer un vbs et de regarder le raccourci se créer sur le bureau. Je ne me sers pas d'un naviguateur ici...

    exectuer les commandes, ca m'a semblé etre une bonne idée, mais ca marche pas...

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Salut

    Ce qui m'a suggéré cette idée de navigateur est qu'en exécutant les deux fonctions une seule fois, j'ai le raccourci avec l'icône FireFox, si j'exécute une deuxième fois, c'est l'icône de IE que j'ai.
    Et là il n'y a pas l'onglet "Document Web" et ainsi de suite.

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    a mon avis, c'est justement parceque le raccourci est mal formé qu'il ne met pas le bon icone.

Discussions similaires

  1. [AC-2007] création de racourci sur le bureau
    Par hocine dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/03/2011, 21h43
  2. [MFC] Créer un ShortCut sur le bureau
    Par lastcheper dans le forum MFC
    Réponses: 25
    Dernier message: 03/06/2010, 11h25
  3. [OpenOffice] Création d'icone OpenOffice sur le bureau
    Par SnackS dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 11/11/2008, 22h26
  4. Réponses: 5
    Dernier message: 02/10/2008, 19h09
  5. Suppression définitive Dossiers sur le bureau Mandrake
    Par goule71 dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 01/11/2005, 16h39

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