Création d'un raccourci sur le bureau

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 865 fois - Téléchargée 42 fois

Contenu du snippet

En VB6, l'assistant Empaquetage (installation du logiciel créé) utilise SETUP1.EXE dont le source peut être modifié pour installer automatiquement un raccourci sur le bureau.

Par contre, si quelqu'un peut me dire comment supprimer le raccourci en question au moment de la désinstallation, je suis preneur.

Source / Exemple :


'Dans la feuille frmSetup1 de Setup1.vbp, modifier la dernière procédure comme suit :

Private Sub Form_Unload(Cancel As Integer)
        Dim Chemin As String, Réponse As Long, Bureau As String, Compteur As Integer
        Dim RetourFonction As Long, Arguments As String
        Chemin = Space(300) 'on crée un tampon, sinon ça foire)
        Réponse = SHGetSpecialFolderPath(Me.hwnd, Chemin, 16, 0) '16 désigne le bureau
        If (Réponse <> 0) Then
            Chemin = Left(Chemin, InStr(Chemin, vbNullChar) - 1) 'on enlève le superflu
        Else
                 'la fonction n'a pas marché (on ne sait jamais)
        End If
        For Compteur = Len(Chemin) To 1 Step -1 ' on cherche le nom du bureau : Bureau ? Desktop ? ...
            If Mid$(Chemin, Compteur, 1) = "\" Then Exit For
        Next Compteur
        Bureau = "..\.." & Mid$(Chemin, Compteur) ' le chemin du bureau
        Bureau = strUnQuoteString(Bureau) ' on enlève les éventuels guillemets
        Arguments = ""
        RetourFonction = OSfCreateShellLink(Bureau & vbNullChar, gstrAppName, gstrDestDir & gstrAppName, Arguments & vbNullChar, True, gsPROGMENUKEY)
    CleanUpCabs
End Sub 

Ajouter aussi dans la section déclarations du module basCommon(common.bas) la déclaration :

Public Declare Function SHGetSpecialFolderPath Lib "Shell32.dll" Alias "SHGetSpecialFolderPathA" (ByVal hwndOwner As Long, ByVal lpszPath As String, ByVal nFolder As Long, ByVal fCreate As Long) As Long

Conclusion :


Je cherche toujours comment virer le raccourci à la désinstallation...

Ajouté le 03/02/2004 suite à une demande.

Pour que le raccourci sur le bureau ait une icône autre qu'un petit rectangle surmonté d'un trait bleu, il faut :
- Sous VB, afficher une des feuilles du projet -disons Form1-
dans les propriétés de Form1, on a : Icon (icon)
on clique sur (icon) puis sur les 3 points qui apparaissent (...)
et on sélectionne un fichier .ico
- On clique sur Projet - Propriétés de (le nom du Projet) puis sur l'onglet Créer
A droite, dans le cadre Application, on déroule la combobox Icône
pour faire apparaître Form1
A côté, l'icône va s'afficher.

- On fait OK ; on sauvegarde le projet ; on crée l'exe ;
on crée le programme d'installation avec
l'Assistant Empaquetage et déploiement (Setup1 modifié).

Et voilà.

Quand on fera l'installation, l'icône du raccourci sera l'icône
du projet c'est à dire l'icône de Form1 et en face du nom de l'exe,
au lieu du rectangle surmonté d'un trait bleu, ce sera aussi cette icône.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
19
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
8 février 2015

Salut à tous,
Ce code (celui de Nicolas75) fonctionne très bien sous XP, mais donne une erreur sous W7. Il semble que le chemin du Desktop soit différent... commnet contourner ce pb ???
Merci pour vos réponses.
Messages postés
33
Date d'inscription
mardi 14 octobre 2003
Statut
Membre
Dernière intervention
2 février 2009

j'ai essaié ca me donne toujours des erreurs de compilation de l'exe setup1.exe
Messages postés
41
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
7 septembre 2005

moi j'ai un probleme avec gsPROGMENUKEY, il n'est pas definit quelqu'un sait comment il doit l'etre??
merci
Messages postés
36
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
23 novembre 2018

Salut Nicolas75
J'ai découvert au moins un problème.
Lorsque je compile Setup1, la version compilée ne se met pas dans PDWizard mais dans Visual Studio (pourquoi, alors qu'elle le fait avec l'autre méthode ?), dons je conservais l'ancien Setup1.exe.
J'ai donc déplacé manuellement le nouveau Setup1.exe et maintenant je vois la CheckBox.
Mais j'ai ensuite une "Erreur lors de la création de l'icone..."
En faisant "ignorer" j'installe le programme mais sans l'icone.
Je ne vois pas d'où vient cette erreur.
Peux-tu m'envoyer Setup1.exe, et peut être Setup1.bas

Mon adresse eric(point)barsalou(at)Wanadoo.fr
Remplacer (point) par . et (at) par @ bien sûr.

Merci d'avance.

P.S. j'ai VB6 SP6 version initiation
Messages postés
27
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
4 février 2008

Salut VieilEric.

Je te confirme que chez moi tout marche à merveille.

Pour info j'utilise VB 6 SP5.

Je ne comprend pas très bien quand tu dis ne pas voir la Checkbox sur la form frmBegin.
As-tu vérifié que sa propriété visible est à True (sans vouloir t'offenser) :-).

Mais il est vrai que ce n'est pas indispensable, c'est seulement pour donner le choix à l'utilisateur d'installer le raccourci ou non.

Pour essayer de répondre à ta question,
Vérifie que les fonctions et procédures SHGetSpecialFolderLocation CreateShellLink existe bien dans le module BasSetup1.bas.

As-tu un message d'erreur suite aux modifs que tu as apportées ?

As-tu créé le fichier Setup1.exe puis le copié dans le dossier "C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard" à la place du précédent ?

Si oui, après une insttall vérifie que le fichier ST6UNST.LOG a bien pris en compte la création de l'icône (c'est un fichier texte).

Si tu veux je peux te faire parvenir le fichier setup1.exe que j'ai modifié par e-mail.

laisse moi juste une adresse.

A+

Nicolas
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.