CRÉATION D'UN RACCOURCI SUR LE BUREAU

leneuf22 Messages postés 156 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 4 mars 2003 - 3 juil. 2002 à 23:28
ofils Messages postés 19 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 8 février 2015 - 9 mars 2011 à 17:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/3894-creation-d-un-raccourci-sur-le-bureau

ofils Messages postés 19 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 8 février 2015
9 mars 2011 à 17:14
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.
rimas10 Messages postés 33 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 2 février 2009
7 juil. 2007 à 00:01
j'ai essaié ca me donne toujours des erreurs de compilation de l'exe setup1.exe
Sojojo Messages postés 41 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 7 septembre 2005
6 sept. 2005 à 09:58
moi j'ai un probleme avec gsPROGMENUKEY, il n'est pas definit quelqu'un sait comment il doit l'etre??
merci
VieilEric Messages postés 36 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 23 novembre 2018
30 mars 2005 à 11:23
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
cs_Nicolas75 Messages postés 27 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 4 février 2008
30 mars 2005 à 10:30
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
VieilEric Messages postés 36 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 23 novembre 2018
29 mars 2005 à 17:30
Bonjour
J'ai essayé le code de Nicolas75, mais sans succès.
Comme je ne pouvais cocher la case ChkIcone (la checkBox n'apparaît pas) j'ai supprimé la condition If blnRaccourci, mais sans plus de résultat.
Le programme s'installe, mais pas le raccourci.
Aurais-je oublié quelque chose ?
A+
NOTA: le code de René38 fonctionne
cs_Nicolas75 Messages postés 27 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 4 février 2008
19 mars 2005 à 14:06
Bonjour à tous

Tout le monde sait (enfin je crois) que l'on peut modifier la procédure d'installation de VB6.
J'ai vu ici une procédure qui semble intéressante mais qui pose quelques petits inconvénients du moins je pense car je me fit au code saisi je n'ai pas testé.

1 – Le raccourci est effectivement créé mais est t'il supprimer lors de la désinstallation.
Car cette opération n'a pas été enregisté dans le fichier unst.log

2- Il n'est pas nécessaire de déclarer à nouveau la fonction SHGetSpecialFolderPath car elle existe déjà dans le code ainsi que la fonction OSfCreateShellLink (Pourquoi ne pas les utiliser).


J'ai moi-même modifié ce code mais avec beaucoup moins de lignes et en utilisant les fonctions existantes;Ce qui fait que l'opération est enregistrée dans le fichier st6unst.log et que le raccourci est alors désinstaller automatiquement avec l'application.

Je dois avouer que je me suis beaucoup inspirer du code précédent et j'en remercie beaucoup l'auteur.

Comment faire :

Tout d'abord Déclarez un variable Public dans le module Général de basSetup1.bas
Exemple BlnRaccourci as Boolean

Puis dans la feuille frmBegin créé un CheckBox que vous appellerez ChkIcone.
Dans la procédure sur Click de ChkIcone entrez :

If ChkIcone.Value = vbChecked Then
blnRaccourci = True
Else
blnRaccourci = False
End If

A la fin du module basSetup1.bas créez la procédure suivante

Private Sub CreationRaccourciBureau(strProgramPath As String, strProgramArgs As String, strProgramIconTitle As String, fPrivate As Boolean, sParent As String)
Dim oMalloc As IVBMalloc
Dim sPath As String
Dim IDL As Long
Dim lPrograms As SpecialFolderIDs
Dim Compteur As Integer

'Renvoi le Chemin du bureau
If SHGetSpecialFolderLocation(frmSetup1.hWnd, lPrograms, IDL) = NOERROR Then
sPath = String$(gintMAX_PATH_LEN, 0)
SHGetPathFromIDListA IDL, sPath
SHGetMalloc oMalloc
oMalloc.Free IDL
sPath = StringFromBuffer(sPath)
End If
AddDirSep sPath

For Compteur = Len(sPath) - 1 To 1 Step -1 ' on cherche le nom du bureau : Bureau ? Desktop ? ...
If Mid$(sPath, Compteur, 1) = "" Then Exit For '
Next Compteur
sPath = "..\.." & Mid$(sPath, Compteur) ' le chemin du bureau
sPath = Mid$(sPath, 1, Len(sPath) - 1) 'le chemin du bureau sans le Slash à la fin
'Appel procédure qui Crée l'icône sur le bureau
CreateShellLink strProgramPath, sPath, strProgramArgs, strProgramIconTitle, fPrivate, sParent
End Sub



Maintenant Recherchez le module CreateIcons dans basSetup1.bas et à la fin, après Le next tapez le code suivant :

If blnRaccourci Then
Call CreationRaccourciBureau(strProgramPath, strProgramArgs, strProgramIconTitle, fPrivate, sParent)
End If




Voilà c'est tout.


Etant donné que j'utilise ici le code existant toute l'opération est alors enregistrée dans le fichier St6unst.log, ce qui a pour conséquence de supprimer l'icône lors de la désinstallation de l'application.

Si vous avez des soucis avec ce code n'hésitez pas à me le dire.

A+
fontyve Messages postés 36 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 16 mai 2020
26 janv. 2004 à 09:09
J'ai rien compris mais c'est pas grave puisque ca marche!
Bravo
fontyve
VieilEric Messages postés 36 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 23 novembre 2018
14 nov. 2003 à 13:41
Dans RetourFonction = le second gstrAppName doit être remplacé par gstrAppExe car le nom de l'application n'est pas forcément celui de l'exe, donc le fichier appelé par le raccourci doit être gstrAppExe.
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
4 déc. 2002 à 01:26
Merci, leneuf22 : code corrigé.
leneuf22 Messages postés 156 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 4 mars 2003 1
3 juil. 2002 à 23:28
Mais il faut aussi utiliser la fonction SHGetSpecialFolderPathA pour retrouver l'emplacement du bureau sur le dd.
Rejoignez-nous