begin process at 2010 02 10 16:06:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Shell

 > CRÉE UN RACCOURCI ET OBTENIR LES REPÉRTOIRE SPÉCIAUX DE WINDOWS

CRÉE UN RACCOURCI ET OBTENIR LES REPÉRTOIRE SPÉCIAUX DE WINDOWS


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Shell Niveau :Débutant Date de création :12/07/2002 Date de mise à jour :12/07/2002 10:46:45 Vu / téléchargé :6 722 / 415

Auteur : PierreF

Ecrire un message privé
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Ce petit modules permet de simplifier la création de raccourci et d'obtenir facillement les

répertoirs spéciaux (bureau,menu démarrer,...)
Pratique pour une installation

Source

  • 'Petit modules qui simpifie la creation de raccourci et l'obtention des rep spéciaux
  • 'par Pierre Fersing pierre.fersing@wandoo.fr le 12/07/02
  • Function GetSpecialFolder(FolderName) ' si on met as string ca marche pas ??????
  • 'donne le chemin d'un répertoir spécial à partire de son nom ou de son ID
  • 'Liste de repértoire spéciaux:
  • 'Nom : ID
  • 'AllUsersDesktop :0
  • 'AllUsersStartMenu :1
  • 'AllUsersPrograms :2
  • 'AllUsersStartup :3
  • 'Desktop :4 10 Si qqun c'est pourquoi il y a deux ID pour desktop
  • 'AppData :5
  • 'PrintHood :6
  • 'Templates :7
  • 'Fonts :8
  • 'NetHood :9
  • 'StartMenu :11
  • 'SendTo :12
  • 'Récent :13
  • 'Startup :14
  • 'Favorites :15
  • 'MyDocuments :16
  • 'Programs :17
  • 'Merci à Fbrt pour cette liste
  • 'Normalement il n'y en a pas plus car un nombre plus petit que 0 ou plus grande que 17
  • 'ca fait planté
  • Dim WSHShell As Object
  • Set WSHShell = CreateObject("WScript.Shell")
  • GetSpecialFolder = WSHShell.SpecialFolders(FolderName)
  • End Function
  • Sub MakeShortCut(ShortcutName As String, Target As String, Optional WorkingDirectory As
  • String, Optional WindowsStyle As Integer = 4, Optional IconName As String, Optional
  • IconIndex As Integer = 0)
  • 'Fonction qui Crée un raccourci
  • 'ShortcutName : Nom complet du raccourcie (ex: c:\windows\bureau\link.lnk)
  • 'Target : La cible du raccourcie (ex: c:\dev\asm\nasm\nasmide.exe)
  • 'WorkingDirectory: Répertoire d'exécution, par defaut le répertoire contenant l'exécutable
  • (ex: c:\dev\asm\src)
  • 'WindowsStyle : Comment est affiché le programme: normal,reduit,agrandi... Par defaut:
  • normal (comme pour shell en VB ex:4 = normal)
  • 'IconName : Chemin d'acces de l'icone, par default l'icone de l'exécutable cible (si
  • non aucun) ( ex: c:\dev\asm.ico)
  • 'IconIndex : L'index de l'icone dans le fichier
  • 'Merci à VBfrance pour les forum sur lequel j'ai trouvé ce que je cherchais
  • 'et à Oliver68 qui a posté le message dont j'avais besoin sur le forum
  • 'si il n'y a le .lnk à la fin on l'ajoute
  • If Right(ShortcutName, 4) <> ".lnk" Then ShortcutName = ShortcutName & ".lnk"
  • 'If IsMissing(WorkingDirectory) Then ca ne marche pas! Et je sais pas pourquoi. Si qqun
  • sait, qu'il me le fasse savoir
  • If WorkingDirectory = "" Then
  • 'Valeur par defaut pour le repértoire de travail: le répertoire de l'exécutable
  • Dim i As Integer, j As Integer
  • i = 1
  • Do
  • j = i + 1
  • i = InStr(j, Target, "\") ' on cherche un \
  • Loop Until i = 0 ' jusqu'a ce qu'il n'y en ait plus
  • 'j est la valeur de la position après du dernier \
  • 'on prend tout ce qu'il y a avant le dernier \ et on en ajoute un à la fin
  • WorkingDirectory = Mid(Target, 1, j - 2) & "\"
  • End If
  • If IconName = "" Then
  • 'Si un n'y a pas d'icone, on prend l'icone de l'exécutable cible ou rien
  • IconName = Target
  • End If
  • Dim WSHShell 'Pour Crée le raccourci et pour optenir les répertoir Spéciaux
  • Dim Shortcut 'notre raccourcie
  • Set WSHShell = CreateObject("WScript.Shell") ' on crée un objet Shell
  • ' Création d'un objet raccourci
  • Set Shortcut = WSHShell.CreateShortcut(ShortcutName)
  • ' Paramétrage du raccourci
  • 'ExpandEnvironmentStrings permet de mettre des chose comme %windir%
  • Shortcut.TargetPath = WSHShell.ExpandEnvironmentStrings(Target)
  • Shortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings(WorkingDirectory)
  • Shortcut.WindowStyle = WindowsStyle
  • Shortcut.IconLocation = WSHShell.ExpandEnvironmentStrings(IconName & " , " & IconIndex)
  • Shortcut.Save
  • End Sub
'Petit modules qui simpifie la creation de raccourci et l'obtention des rep spéciaux
'par Pierre Fersing pierre.fersing@wandoo.fr le 12/07/02

Function GetSpecialFolder(FolderName) ' si on met as string ca marche pas ??????
'donne le chemin d'un répertoir spécial à partire de son nom ou de son ID

'Liste de repértoire spéciaux:
'Nom               : ID

'AllUsersDesktop   :0
'AllUsersStartMenu :1
'AllUsersPrograms  :2
'AllUsersStartup   :3
'Desktop           :4 10    Si qqun c'est pourquoi il y a deux ID pour desktop
'AppData           :5
'PrintHood         :6
'Templates         :7
'Fonts             :8
'NetHood           :9
'StartMenu         :11
'SendTo            :12
'Récent            :13
'Startup           :14
'Favorites         :15
'MyDocuments       :16
'Programs          :17

'Merci à Fbrt pour cette liste
'Normalement il n'y en a pas plus car un nombre plus petit que 0 ou plus grande que 17
'ca fait planté

Dim WSHShell As Object
Set WSHShell = CreateObject("WScript.Shell")
GetSpecialFolder = WSHShell.SpecialFolders(FolderName)
End Function

Sub MakeShortCut(ShortcutName As String, Target As String, Optional WorkingDirectory As 

String, Optional WindowsStyle As Integer = 4, Optional IconName As String, Optional 

IconIndex As Integer = 0)
'Fonction qui Crée un raccourci
'ShortcutName : Nom complet du raccourcie (ex: c:\windows\bureau\link.lnk)
'Target       : La cible du raccourcie (ex: c:\dev\asm\nasm\nasmide.exe)
'WorkingDirectory: Répertoire d'exécution, par defaut le répertoire contenant l'exécutable 

(ex: c:\dev\asm\src)
'WindowsStyle : Comment est affiché le programme: normal,reduit,agrandi... Par defaut: 

normal (comme pour shell en VB ex:4 = normal)
'IconName     : Chemin d'acces de l'icone, par default l'icone de l'exécutable cible (si 

non aucun) ( ex: c:\dev\asm.ico)
'IconIndex    : L'index de l'icone dans le fichier

'Merci à VBfrance pour les forum sur lequel j'ai trouvé ce que je cherchais
'et à Oliver68 qui a posté le message dont j'avais besoin sur le forum

'si il n'y a le .lnk à la fin on l'ajoute
If Right(ShortcutName, 4) <> ".lnk" Then ShortcutName = ShortcutName & ".lnk"

'If IsMissing(WorkingDirectory) Then  ca ne marche pas! Et je sais pas pourquoi. Si qqun 

sait, qu'il me le fasse savoir
If WorkingDirectory = "" Then
    'Valeur par defaut pour le repértoire de travail: le répertoire de l'exécutable
    Dim i As Integer, j As Integer
    i = 1
    Do
        j = i + 1
        i = InStr(j, Target, "\") ' on cherche un \
    Loop Until i = 0                    ' jusqu'a ce qu'il n'y en ait plus
    'j est la valeur de la position après du dernier \
    'on prend tout ce qu'il y a avant le dernier \ et on en ajoute un à la fin
    WorkingDirectory = Mid(Target, 1, j - 2) & "\"
End If

If IconName = "" Then
    'Si un n'y a pas d'icone, on prend l'icone de l'exécutable cible ou rien
    IconName = Target
End If

Dim WSHShell 'Pour Crée le raccourci et pour optenir les répertoir Spéciaux
Dim Shortcut 'notre raccourcie


Set WSHShell = CreateObject("WScript.Shell") ' on crée un objet Shell

' Création d'un objet raccourci
Set Shortcut = WSHShell.CreateShortcut(ShortcutName)
' Paramétrage du raccourci
'ExpandEnvironmentStrings permet de mettre des chose comme %windir%
Shortcut.TargetPath = WSHShell.ExpandEnvironmentStrings(Target)
Shortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings(WorkingDirectory)
Shortcut.WindowStyle = WindowsStyle
Shortcut.IconLocation = WSHShell.ExpandEnvironmentStrings(IconName & " , " & IconIndex)

Shortcut.Save
End Sub

 Conclusion

Si il y a un problème laissez un commentaire.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip SIMPLE JEU DE MORPION AVEC IA
Source avec Zip DLL C++ DANS VB

 Sources de la même categorie

Source avec Zip Source avec une capture LANCEUR REALVNC par Nobru59
Source avec Zip Source .NET (Dotnet) XGBLENDERCOMPRESSOR par XelectroX
Source avec Zip Source .NET (Dotnet) CONTRÔLER L'AUTORUN DE WINDOWS XP (ET SUPÉRIEUR) ET LES NOTI... par ShareVB
Source avec Zip Source .NET (Dotnet) LECTURE ET MODIFICATION DES PROPRIÉTÉS DES FICHIERS OFFICE E... par ShareVB
Source avec Zip Source avec une capture QEMUGUI - LANCEUR DE QEMU par ghuysmans99

Commentaires et avis

Commentaire de grizeli31 le 04/10/2002 10:49:03

C'est sympa ton truc, par contre moi les id vont de 0 a 15 et pas 17 (g win98 et VB6) de plus certaines sont inversé par rapport aux tiennes. Mais c'est pratique

Commentaire de fwauquier le 28/01/2003 10:13:26

Pour que IsMissing fonctionne, il faut que ton paramètre soit su type "Variant".

Commentaire de Linkman le 14/02/2003 21:31:43

Heuuu, je voudré savoir, bon je vé passé pour un noob, mé bon.
Le dossier Templates c le dossier Temp, non ?
Si oui, ba moi g windows XP, et s'a m'en mène ds le dossier "Modèles".... :o(
Dsl pour l'orth @+

Commentaire de PierreF le 16/02/2003 11:50:35

Le répertoir temp c'est le répertoir temporaire (c:windows emp pour les win9x et c:documents and settings&lt;nom de l'utilisateur&gt;Local SettingsTemp pour les win NT).

Commentaire de jmc70 le 22/09/2003 19:05:12

Même problême que pour Grizeli31 : les id ne correspondent pas sur ma machine en win98 (sous VB6) et ne vont que jusqu'à 9 : le bureau est par exemple en 7 et 1, mes documents en 13. C'est inquiétant car l'intérêt du programme c'est justement de retrouver les chemins quel que soit le SE.

Commentaire de jmc70 le 22/09/2003 19:11:38

En tout cas ça fonctionne bien si on passe le nom du dossier à la place de l'ID. Par exemple
           MsgBox GetSpecialFolder("desktop")
retourne bien le dossier du bureau.
A tester en NT, XP et 2000 !
Merci pour ce code très pratique de toute façon.

Commentaire de CanisLupus le 18/01/2004 15:24:01 administrateur CS

Pour les valeurs d'ID Il y a une bonne piste sur :

http://www.mvps.org/vbnet/api/_func/methg.htm

et voir GetSpecialFolderLocation

ou alors voir dans l'API guide de allapi.net

ou directement sur :

http://www.mentalis.org/apilist/SHGetSpecialFolderLocation.shtml

Cordialement

CaniLupus

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales