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

VB.NET Discussion :

Dossier SendTo, raccourcis pas détectés


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 56
    Par défaut Dossier SendTo, raccourcis pas détectés
    Bonjour.

    Je crée par code des raccourcis dans le dossier SendTo (pour le menu contextuel Envoyer vers) avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Chemin et nom du raccourci
                        Nom = Environment.GetFolderPath(System.Environment.SpecialFolder.SendTo) & "\" & d.CheminSansSlash & ".lnk"
                        Raccourci = CType(SendTo.CreateShortcut(Nom), IWshRuntimeLibrary.WshShortcut)
                        'Cible à exécuter
                        Raccourci.TargetPath = My.Application.Info.DirectoryPath + "\FasT uPload_cmd.exe""" + """" + d.CheminSansSlash + ""
                        'Icône à utiliser
                        Raccourci.IconLocation = My.Application.Info.DirectoryPath + "\ICON9.ico"
                        'Enregistrement du raccourci
                        Raccourci.Save()
    Malheureusement, si le raccourcis est correct, windows n'en tient pas compte.
    Bizarrement si j'édite les propriétés de mon raccourcis à la main et que je sauvegarde, là windows le détecte et tout fonctionne.

    Quelqu'un saurait-il comment faire pour faire réagir windows s'il vous plait ?

  2. #2
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    La syntaxe est pas bonne et il manque des choses.
    Voici un exemple qui fonctionne sans probleme pour la creation sur le bureau.
    Il suffit juste de le mttre à ta sauce. (si tu n'y arrives pas, je t'aiderai)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim RaccourciBureau As IWshRuntimeLibrary.WshShell
    Dim LeRaccourci As IWshRuntimeLibrary.WshShortcut
     
    RaccourciBureau = New IWshRuntimeLibrary.WshShell
    RaccourciNom = My.Computer.FileSystem.SpecialDirectories.Desktop & "\" & My.Application.Info.ProductName & ".lnk"
    LeRaccourci = CType(RaccourciBureau.CreateShortcut(RaccourciNom), IWshRuntimeLibrary.WshShortcut)
    LeRaccourci.TargetPath = CheminEXE & "\" & My.Application.Info.ProductName & ".exe"
    LeRaccourci.IconLocation = CheminEXE & "\" & My.Application.Info.ProductName & ".exe" & ", 0"
    LeRaccourci.WorkingDirectory = CheminEXE
    LeRaccourci.WindowStyle = 1
    LeRaccourci.Save()

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 56
    Par défaut
    La syntaxe est bonne, ça compile et ça fonctionne.

    J'ai rajouté le working directory et le WindowStyle, pour le reste j'ai le même code que toi, c'est juste que j'ai pas mis ici les déclarations

    Le soucis que j'ai c'est que Windows ne met pas à jour son menu contextuel tout seul, je suis obligé ce faire un clic droit/propriété/appliquer sur chaque raccourcis (sans rien changer d'autre) pour qu'il les prenne en compte.

  4. #4
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Ah ok, ton post n'etait pas tres clair
    Tu es sur quel systeme ?
    Sinon, regardes si apres un reboot tes raccourcis sont ok.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 56
    Par défaut
    Trouvé!

    Ah windows m'a joué une jolie farce! Voila ce que j'en ai déduis :

    Lorsque l'on passe par l'interface Windows pour regarder un raccourci, on peut lire en "cible" le chemin de l'appli et les arguments MAIS je pense qu'il s'agit d'une concaténation faite par Windows
    En effet j'ai trouvé sur une autre librairie de création de shotcut une propriété "Argument" et là ça fonctionne parfaitement

    Ca explique aussi pourquoi mes raccourcis fonctionnaient quand je les éditais à la main, Windows se chargeait derrière de découper target et Argument.

    Voici le code que j'ai utilisé :

    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
    Dim WshShell As Object
                Dim path As String
                Dim Shortcut As Object
                Dim dirlog As String, dirlnk As String
                dirlog = My.Application.Info.DirectoryPath
                WshShell = CreateObject("WScript.Shell")
                path = WshShell.SpecialFolders("SendTo")
                For Each d As Dir In loDir
                    Shortcut = WshShell.CreateShortcut(path & "\" & d.CheminSansSlash & ".lnk")
                    With Shortcut
                        .TargetPath = WshShell.ExpandEnvironmentStrings(dirlog & "\FasT uPload_cmd.exe")
                        .Arguments = """" & d.CheminSansSlash & ""
                        .WorkingDirectory = WshShell.ExpandEnvironmentStrings(dirlog)
                        .IconLocation = My.Application.Info.DirectoryPath + "\ICONGROUP_13639.ico"
                        .Description = "FasT uPload"
                        .HotKey = ""
                        .WindowStyle = 4
                    End With
                    Shortcut.Save()
                Next
    Merci Danyel d'avoir cherché

  6. #6
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    WScript.Shell = IWshRuntimeLibrary.WshShell
    C'est la meme chose

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

Discussions similaires

  1. droit sur un dossier: écriture mais pas lecture
    Par boss_gama dans le forum Windows Serveur
    Réponses: 11
    Dernier message: 11/09/2007, 12h26
  2. [Deployment] persistence.xml pas détecté
    Par fisico dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 24/08/2007, 21h56
  3. événement OnDrawTab pas détecté
    Par OutOfRange dans le forum Delphi
    Réponses: 4
    Dernier message: 24/09/2006, 15h59
  4. [vieux Win 98]Options de dossiers n'apparait pas
    Par ran_hery dans le forum Windows 2000/Me/98/95
    Réponses: 1
    Dernier message: 17/05/2006, 22h26
  5. Comment tester si un dossier existe ou pas?
    Par Hamdi Hedhili dans le forum C++
    Réponses: 2
    Dernier message: 06/12/2005, 09h44

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