leneuf22
Messages postés156Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention 4 mars 2003
-
3 juil. 2002 à 23:28
ofils
Messages postés19Date d'inscriptionmercredi 23 mars 2005StatutMembreDerniè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.
ofils
Messages postés19Date d'inscriptionmercredi 23 mars 2005StatutMembreDerniè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és33Date d'inscriptionmardi 14 octobre 2003StatutMembreDerniè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és41Date d'inscriptionjeudi 14 avril 2005StatutMembreDerniè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és36Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention23 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és27Date d'inscriptionlundi 26 janvier 2004StatutMembreDerniè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és36Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention23 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és27Date d'inscriptionlundi 26 janvier 2004StatutMembreDerniè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és36Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention16 mai 2020 26 janv. 2004 à 09:09
J'ai rien compris mais c'est pas grave puisque ca marche!
Bravo
fontyve
VieilEric
Messages postés36Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention23 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és1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 4 déc. 2002 à 01:26
Merci, leneuf22 : code corrigé.
leneuf22
Messages postés156Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention 4 mars 20031 3 juil. 2002 à 23:28
Mais il faut aussi utiliser la fonction SHGetSpecialFolderPathA pour retrouver l'emplacement du bureau sur le dd.
9 mars 2011 à 17:14
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.
7 juil. 2007 à 00:01
6 sept. 2005 à 09:58
merci
30 mars 2005 à 11:23
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
30 mars 2005 à 10:30
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
29 mars 2005 à 17:30
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
19 mars 2005 à 14:06
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+
26 janv. 2004 à 09:09
Bravo
fontyve
14 nov. 2003 à 13:41
4 déc. 2002 à 01:26
3 juil. 2002 à 23:28