Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création raccourçi sous Vista

4 réponses
Avatar
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 Files\MajVersion\Toto.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

4 réponses

Avatar
Jacques93
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.
Avatar
Pascal
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.



Avatar
Jacques93
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 :

<http://msdn2.microsoft.com/en-us/library/xsy6k3ys(VS.85).aspx>

--
Cordialement,

Jacques.
Avatar
Jacques93
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 :

<http://msdn2.microsoft.com/en-us/library/xsy6k3ys(VS.85).aspx>




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.