Aller au contenu
Zebulon
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Lire le lien d'un fichier *.lnk


Invité Hoffmann

Messages recommandés

Ouvre l'un de ces fichiers avec notepad et tu verras que le nom complet du fichier apparaît en dernier, par conséquent il suffit de récupérer les derniers octets correspondant à la chaîne qui ressemble à un path (chose extrêmement facile à faire avec une bonne regexp et sed ... ou awk pour ceux qui ne maîtrisent pas sed).

Si tu détaillais un peu plus, on pourrait peut-être t'aider un peu mieux ;-)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

La solution en ".VBS" à adapter ? "showlnk.vbs" :

 

Set objShell = WScript.CreateObject("WScript.Shell" )
Path1 = objShell.SpecialFolders.Item("AllUsersDesktop" )
' Wscript.Echo "AllUsersDesktop:" & Path1
Set fso = CreateObject("Scripting.FileSystemObject" )
Set f = fso.GetFolder(Path1)
Set fc = f.Files
For Each f1 in fc
  If (fso.GetExtensionName(f1) = "lnk" ) Then
  Set myShortcut = objShell.CreateShortcut(f1.path)
  WScript.Echo f1.name & "-->" & myShortcut.TargetPath
  End If
Next

Path1 = objShell.SpecialFolders.Item("Desktop" )
'Wscript.Echo "Desktop:" & Path1
Set f = fso.GetFolder(Path1)
Set fc = f.Files
For Each f1 in fc
  If (fso.GetExtensionName(f1) = "lnk" ) Then
  Set myShortcut = objShell.CreateShortcut(f1.path)
  WScript.Echo f1.name & "-->" & myShortcut.TargetPath
  End If
Next

 

Contrairement à son nom CreateShortcut ne crée pas de raccourci si le chemin existe déjà (ce qui est forcément le cas ici). CreateShortcut crée juste un objet en mémoire dont la propriété TargetPath contient la cible du lien. La première boucle concerne les raccourcis communs à tous les utilisateurs du poste, et la seconde boucle concerne les raccourcis de l'utilisateur courant. (Bureau Windows)

 

Ce petit programme en ".vbs" peut et doit être associé à un fichier de contrôle ".bat" (= contrôle "DOS"). J'ai pas testé le code et j'espère un code ".bat" si c'est utile. Comment sélectionner un dossier et plusieurs ".lnk" aux choix ? (Certains programmes permettent la sélection de plusieurs fichiers dans les boites de dialogues "Sélectionner" (= Ouvrir))

 

Comment modifier la variable "Path1" ?

Comment écrire le lien vers un dossier normal (avec peut-être un espace) ?

 

Comment modifier "WScript.Echo" pour que ça enregistre dans un fichier ".txt" au lieu de seulement afficher ?

Un lien par ligne !

 

J'ai compris que ce code lit tous les liens d'abord sur le bureau de tous les utilisateurs en les affichant un par un, puis ensuite le code lit tous les liens sur le bureau de l'utilisateur courant en les affichant un par un. Tous ce qui n'est pas ".lnk" n'est pas traité et la sortie d'une boucle se fait quand tous les objets d'une boucle à la fois ont été lues. Le fichier pourrait peut-être être modifié pour que l'on puisse choisir le dossier à traiter. Au lieu de simplement faire un affichage (si je comprends: 'WScript.Echo'), ce serait bien de pouvoir enregistrer le résultat dans un fichier ".txt". Le contrôle pour l'entrée des paramètres avec un fichier ".bat" c'est possible ? Ou directement en code ".VBS" ? Ou les deux (".BAT" pour DOS et ".VBS" pour le mode graphique) ? J'ai trouvé : Doter un script d'une interface <(Script HTA)

 

Source du code ici : http://forum.hardware.fr/hfr/Programmation...jet_78050_1.htm

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...