Bonjour a tous,
Je souhaite créer un raccourci sur le bureau àa partir de mon programme VB.
Après une rapide recherche (peut-être trop rapide) je n'ai rien trouvé qui me plaise.
Auriez-vous une idée ?
Bonjour a tous,
Je souhaite créer un raccourci sur le bureau àa partir de mon programme VB.
Après une rapide recherche (peut-être trop rapide) je n'ai rien trouvé qui me plaise.
Auriez-vous une idée ?
Hum, y'a une api qui doit bien se planquer c'est sûr !
Sinon, l'idée serait d'ouvrir un raccourci quelconque (.pif ? autre?) avec un éditeur binaire, de repérer le pointeur sur le chemin de l'icône et du repertoire / fichier correspondant au raccourci puis de générer un fichier semblable avec tes propres valeurs.
Ce n'est pas du tout la bonne méthode car la compatibilité ascendante du soft est brisée, mais ça peut dépanner.
Salut,
Tu devrais p'tet jeter un oeil au setup1.vbp de VB. Il en crée bien des raccourcis sur le bureau user, lui !
Edit : Euh.. autant pour moi, j'ai un doute sur la création du raccourci par Setup1.vbp
Merci à vous deux
Après une recherche plus approfondie voici ce que j'ai fait.
Le problème, je n'ai pas trouvé la description des objets utilisés.
Pour certains paramétré il faut y aller en aveugle et essayer...
Si vous avez mieux et surtout plus commenté, je suis preneur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Private Sub Command1_Click() CreateShortcut "c:\test de raccourci.lnk", "d:\MonProgramme.exe", "e:\", "/Debug", "Essai de description" End Sub Private Sub CreateShortcut(ByVal NomRaccourci As String, _ ByVal FichierCible As String, _ Optional ByVal DemarrerDans As String = "", _ Optional ByVal Arguments As String = "", _ Optional ByVal Description As String = "", _ Optional ByVal Hotkey As String = "", _ Optional ByVal Icone As String = "", _ Optional ByVal WindowsStyle As Long = 4) Dim WSHShell As Object Dim A As Object Set WSHShell = CreateObject("WScript.Shell") If right(NomRaccourci, 4) <> ".lnk" And right(NomRaccourci, 4) <> ".url" Then NomRaccourci = NomRaccourci & ".lnk" End If Set A = WSHShell.CreateShortcut(NomRaccourci) A.TargetPath = FichierCible A.WorkingDirectory = DemarrerDans A.Arguments = Arguments A.Description = Description A.Hotkey = Hotkey If Icone = "" Then Icone = FichierCible & ", 0" A.IconLocation = Icone 'Exemple : notepad.exe, 0 A.WindowStyle = WindowsStyle A.Save End Sub
Dans la FAQ VB6...
Ajoutez la référence Windows Script Host Object Model (wshom.ocx) à votre projet.
Original ici : http://vb.developpez.com/faq/?page=Systeme#shortcut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dim Wsh As New WshShell DesktopPath = Wsh.SpecialFolders("Desktop") Set Shortcut = Wsh.CreateShortcut(DesktopPath & "\Test.lnk") With Shortcut .TargetPath = App.EXEName .Description = "Mon Programme" .WindowStyle = 4 .Save End With
merci LiBasic
Comme quoi, on ne lit jamais assez les FAQ![]()
Moi j'ai trouvé la même chose sur DVP, mais ou, pas moyen de retrouvé non plus, donc je ne peux mettre le lien.
J'avais dût rajouter des commentaires perso, je sais plus
Motif de l'edit, je retire ou pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Private Sub Command1_Click() Dim DesktopPath Dim Shortcut Dim Wsh As New WshShell 'Wsh.SpecialFolders = 'AllUsersDesktop -->pour le Burreau Windows (quelque soit le sessionniste) 'AllUsersStartup pour -->Démarrer-->Tous les programmes-->Démarage (quelque soit le sessionniste) 'AllUsersPrograms pour -->Démarrer-->Tous les programmes (quelque soit le sessionniste) 'Desktop pour --> pour le Burreau Windows (du sessionniste) 'Favorites "C:\Documents and Settings\francis\Favoris" (Btn. Favoris de l'explorateur) 'Fonts bizard non valide 'MyDocuments pour -->Démarrer-->Mes documents 'NetHood Menu Favoris Réseau "C:\Documents and Settings\francis\Voisinage réseau" 'PrintHood "C:\Documents and Settings\francis\Voisinage d'impression" 'Programs pour -->Démarrer-->Tous les programmes (du sessionniste) 'Recent (Historique) C:\Documents and Settings\francis\Recent 'SendTo C:\Documents and Settings\francis\SendTo 'StartMenu pour partie haute de -->Démarrer-->Tous les programmes 'Startup pour -->Démarrer-->Tous les programmes-->Démarage (du sessionniste) 'Templates "C:\Documents and Settings\francis\Modèles" DesktopPath = Wsh.SpecialFolders("Desktop") Set Shortcut = Wsh.CreateShortcut(DesktopPath & "\ATest.lnk") 'WshShortcut.Save: dans la fenetre de propriété With Shortcut .TargetPath = "C:\PersoFrancis\Lecteur Win32API\WIN32APIVB.exe" 'cible .Description = "Mon Programme" 'commentaire .WindowStyle = 4 'correspondant au style de la fenêtre dans laquelle le programme est exécuté .WorkingDirectory = "C:\PersoFrancis\Lecteur Win32API" 'Démarer dans (nouveau repertoire en cours) .Hotkey = "CTRL+SHIFT+F" 'Touche de raccourci pour lancer le raccourci. .Save ' creation du racourci End With End Sub![]()
:whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
saut de ligne
OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈
Dans mon composant DiFIleTools (Suivre le lien dans ma signature), il y a deux fonctions qui font çà:
CreatDeskTopShellLink pour réer un raccourci sur le bureau
et
CreatStartShellLink pour créer unraccourci dans le menu démarrer
Pour le faire, j'utilise la dll de vb6 : VB6STKIT.DLL
Pour ceux interressé, le source est fourni.
Partager