Création raccourçi sous Vista

Le
Pascal
J'utilise la fonction suivante pour créer un raccourçi sur le bureau, mais
celui-ci ne fonctioonne pas sous Vista :

Public Declare Function fCreateShellLink Lib "vb6stkit.dll" _
(ByVal lpstrFolderName As String, _
ByVal lpstrLinkName As String, _
ByVal lpstrLinkPath As String, _
ByVal lpstrLinkArguments As String, _
ByVal fPrivate As Long, _
ByVal sParent As String) As Long
strLinkName = "Nom du raccourçi"
strLinkPath = "C:Program FilesMajVersionToto.Exe"
strLinkArguments = ""
fPrivate = False
'fPrivate = False 'Pour dossier Public
'fPrivate = True 'Pour dossier Privé
strGroupName = "....Bureau"
sParent = "$(Programs)"
fSuccess = fCreateShellLink(strGroupName & vbNullChar, strLinkName,
strLinkPath, strLinkArguments & vbNullChar, fPrivate, sParent)

Merci à celui qui me donnera la solution.
--
Pascal
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques93
Le #15355181
Bonjour Pascal,
Pascal a écrit :
J'utilise la fonction suivante pour créer un raccourçi sur le bureau, mais
celui-ci ne fonctioonne pas sous Vista :

Public Declare Function fCreateShellLink Lib "vb6stkit.dll" _
(ByVal lpstrFolderName As String, _
ByVal lpstrLinkName As String, _
ByVal lpstrLinkPath As String, _
ByVal lpstrLinkArguments As String, _
ByVal fPrivate As Long, _
ByVal sParent As String) As Long
strLinkName = "Nom du raccourçi"
strLinkPath = "C:Program FilesMajVersionToto.Exe"
strLinkArguments = ""
fPrivate = False
'fPrivate = False 'Pour dossier Public
'fPrivate = True 'Pour dossier Privé
strGroupName = "....Bureau"
sParent = "$(Programs)"
fSuccess = fCreateShellLink(strGroupName & vbNullChar, strLinkName,
strLinkPath, strLinkArguments & vbNullChar, fPrivate, sParent)

Merci à celui qui me donnera la solution.



Tu peux rechercher les fils initiés par Kiriasse, concernant les
particularités de Vista. Je ne crois pas que le sujet des raccourcis
aient été abordées, mais par l'adaptation du Setup de VB6 n'est pas
triviale.

A ta place, je laisserai tomber l'API fCreateShellLink, qui est quelque
peu obsolète pour Vista. Et utiliserai ceci, par exemple, à adapter :

Sub CreateShortcut()
Dim WshShell As Object
Dim Shortcut As Object
Dim sURL As String

Set WshShell = CreateObject("WScript.Shell")
sURL = Environ("UserProfile") & "Desktop"

Set Shortcut = WshShell.CreateShortcut(sURL + "MonRaccourci.lnk")
With Shortcut
.TargetPath = Environ("windir") & "System32notepad.exe"
.WindowStyle = 1
.IconLocation = Environ("Windir") & "System32Notepad.exe,0"
.Description = "Raccourci MonApplication.exe"
.WorkingDirectory = sURL
.Save
End With
Set Shortcut = Nothing
Set WshShell = Nothing

End Sub


Si ton application peut être installé sous XP ou W2K, remplacer en
fonction de l'OS Desktop par Bureau.
--
Cordialement,

Jacques.
Pascal
Le #15355171
Merci pour la réponse qui fonctionne, je fait les tests pour voir si cel
fonctionne sous toutes les version de Windows. (mon appli tourne chez
beaucoup de personnes)
--
Pascal


"Jacques93" a écrit :

Bonjour Pascal,
Pascal a écrit :
> J'utilise la fonction suivante pour créer un raccourçi sur le bureau, mais
> celui-ci ne fonctioonne pas sous Vista :
>
> Public Declare Function fCreateShellLink Lib "vb6stkit.dll" _
> (ByVal lpstrFolderName As String, _
> ByVal lpstrLinkName As String, _
> ByVal lpstrLinkPath As String, _
> ByVal lpstrLinkArguments As String, _
> ByVal fPrivate As Long, _
> ByVal sParent As String) As Long
> strLinkName = "Nom du raccourçi"
> strLinkPath = "C:Program FilesMajVersionToto.Exe"
> strLinkArguments = ""
> fPrivate = False
> 'fPrivate = False 'Pour dossier Public
> 'fPrivate = True 'Pour dossier Privé
> strGroupName = "....Bureau"
> sParent = "$(Programs)"
> fSuccess = fCreateShellLink(strGroupName & vbNullChar, strLinkName,
> strLinkPath, strLinkArguments & vbNullChar, fPrivate, sParent)
>
> Merci à celui qui me donnera la solution.

Tu peux rechercher les fils initiés par Kiriasse, concernant les
particularités de Vista. Je ne crois pas que le sujet des raccourcis
aient été abordées, mais par l'adaptation du Setup de VB6 n'est pas
triviale.

A ta place, je laisserai tomber l'API fCreateShellLink, qui est quelque
peu obsolète pour Vista. Et utiliserai ceci, par exemple, à adapter :

Sub CreateShortcut()
Dim WshShell As Object
Dim Shortcut As Object
Dim sURL As String

Set WshShell = CreateObject("WScript.Shell")
sURL = Environ("UserProfile") & "Desktop"

Set Shortcut = WshShell.CreateShortcut(sURL + "MonRaccourci.lnk")
With Shortcut
.TargetPath = Environ("windir") & "System32notepad.exe"
.WindowStyle = 1
.IconLocation = Environ("Windir") & "System32Notepad.exe,0"
.Description = "Raccourci MonApplication.exe"
.WorkingDirectory = sURL
.Save
End With
Set Shortcut = Nothing
Set WshShell = Nothing

End Sub


Si ton application peut être installé sous XP ou W2K, remplacer en
fonction de l'OS Desktop par Bureau.
--
Cordialement,

Jacques.



Jacques93
Le #15355161
Pascal a écrit :
Merci pour la réponse qui fonctionne, je fait les tests pour voir si cel
fonctionne sous toutes les version de Windows. (mon appli tourne chez
beaucoup de personnes)



Merci du retour :-) .A par le test à faire pour choisir Desktop ou
Bureau, ça devrait touner, c'est lié à Windows Scripting Host :


--
Cordialement,

Jacques.
Jacques93
Le #15355151
Jacques93 a écrit :
Pascal a écrit :
Merci pour la réponse qui fonctionne, je fait les tests pour voir si
cel fonctionne sous toutes les version de Windows. (mon appli tourne
chez beaucoup de personnes)



Merci du retour :-) .A par le test à faire pour choisir Desktop ou
Bureau, ça devrait touner, c'est lié à Windows Scripting Host :





En fait, plutôt que de tester l'OS, il vaut mieux utiliser la méthode
SpecialFolder, qui renverra le bon dossier :

...
Set WshShell = CreateObject("WScript.Shell")
sURL = WshShell.SpecialFolders("Desktop")
...

--
Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme