Comment "persuader" les programmes d'ouvrir un fichier .lnk dans Windows 7?


37

Un .lnkfichier dans Windows est un fichier réel destiné à être un raccourci vers un autre fichier. Cependant, je souhaite vraiment voir le contenu du .lnkfichier lui-même. Je trouve littéralement impossible de le faire; peu importe ce que j'essaie, mes applications ouvrent le contenu du fichier vers lequel il pointe (glisser / déposer dans un éditeur de texte ou hexagonal, fichier | ouvrir depuis un éditeur de texte ou hexagonal, etc.)

Existe-t-il un moyen de demander à un programme d' ouvrir le fichier .lnk au lieu du fichier vers lequel il pointe?


3
Vous pouvez toujours le renommer en .txt ou quelque chose. Habituellement, cela ne lui fait perdre aucune donnée.
Jon

1
@Chipperyman Sauf que ça ne marche pas. Vous ne pouvez pas facilement renommer les .lnkfichiers avec une nouvelle extension.
287352

Réponses:


19

Ouverture des raccourcis

Afin de modifier un raccourci, vous devez évidemment l’ouvrir en premier, ce qui s'avère délicat. Dans certains cas, vous pouvez forcer les programmes à charger des fichiers de raccourci à l'aide d'un argument de ligne de commande:

"X:\Path\to\program.exe" "X:\my shortcut.lnk"

Le chargement du fichier cible ou du fichier de raccourci dépend toutefois du programme. Voici une liste (sans ordre particulier) de certains éditeurs hexagonaux libres qui les prend en charge immédiatement:


solution de contournement

Si vous ne parvenez pas à charger le contenu d'un fichier de raccourci, vous pouvez ouvrir une invite de commande et renommer le .lnkfichier en une extension différente, non existante, telle que .lne:

cd /d "X:\Folder\containing\shortcuts"
ren "my shortcut.lnk" "my shortcut.lne"

Si vous avez plusieurs fichiers, vous pouvez également les renommer tous en même temps:

ren *.lnk *.lne

Vous pourrez alors traiter ces raccourcis comme des fichiers normaux. Lorsque vous avez terminé, assurez-vous de les renommer pour restaurer leurs fonctionnalités habituelles.


Information additionnelle

Un raccourci, ou lien shell , contient des informations de métadonnées permettant d’accéder à une cible de lien spécifique . Il est analysé et interprété par le shell Windows. De la documentation officielle:

La structure de liens du shell stocke diverses informations utiles aux utilisateurs finaux, notamment:

  • Un raccourci clavier qui peut être utilisé pour lancer une application.

  • Un commentaire descriptif.

  • Paramètres qui contrôlent le comportement de l'application.

  • Données facultatives stockées dans des sections de données supplémentaires .

Source: [MS-SHLLINK]: Format de fichier binaire Shell Link (.LNK) - Présentation

Les raccourcis sont stockés sous forme de fichiers binaires et ne peuvent pas être modifiés à l'aide d'un éditeur de texte standard. Un .lnkfichier typique ressemble à quelque chose comme ça en interne:

00000000  4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00  L...........À...
00000010  00 00 00 46 DC 03 00 02 20 00 00 00 C6 EF 52 BE  ...FÜ... ...ÆïR¾
00000020  10 04 CA 01 C6 EF 52 BE 10 04 CA 01 60 45 8A 67  ..Ê.ÆïR¾..Ê.`EŠg
00000030  20 04 CA 01 00 9A 04 00 00 00 00 00 01 00 00 00   .Ê..š..........

Les vingt premiers octets sont toujours les suivants:

4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00 00 00 00 46

Lectures complémentaires


Utiliser HxD pour l'ouvrir via File | Opensemble avoir ouvert le .lnkfichier. Merci.
Jez

@Jez J'ai mis à jour mon message pour inclure des informations supplémentaires. Dis moi si tu as d'autres questions.
and31415

16

J'ai essayé cela et cela fonctionne pour moi sur Windows 8.1:

Ouverture de LNKfichiers dans le Bloc-notes:

  • Il suffit de les faire glisser dans la fenêtre du Bloc-notes. Si vous les ouvrez à partir de la Openboîte de dialogue, le Bloc-notes ouvrira le EXEfichier pointé par le LNKfichier.

Ouverture de LNKfichiers dans l’ éditeur HxD hex :

  • Ouvrez-les comme n'importe quel fichier en utilisant la boîte de dialogue Ouvrir ( FileOpen)

Ouverture de LNKfichiers à l’invite de commande:

  • Naviguez jusqu'au dossier contenant les LNKfichiers et tapez la commande: TYPE SHORTCUTNAME.LNK

Ouverture de LNKfichiers dans à peu près n'importe quel programme:

  • Lancez l'invite de commande, naviguez jusqu'au dossier où se trouve le programme, utilisez la commande suivante: PROGRAM_NAME.EXE "path to LNK file"

8

L'intérêt d'un fichier .lnk est que Windows le considère comme un lien vers un autre fichier, il devrait donc être difficile à modifier!

Peut-être que cela vous aiderait si vous décriviez POURQUOI vous voulez l’éditer. Vous pouvez modifier les paramètres d'un fichier .lnk en cliquant avec le bouton droit de la souris et en choisissant Propriétés .

Si vous voulez vraiment l'éditer, vous avez besoin d'un outil spécial. Il en existe quelques-uns, notamment:

NB: Je n'ai essayé aucun de ceux-ci, juste les googler.

MISE À JOUR:

Je ne sais pas pourquoi je n'y avais pas pensé auparavant, mais vous pouvez modifier les propriétés via PowerShell. De cette réponse précédente sur Stack Overflow :

Copy-Item $sourcepath $destination  ## Get the lnk we want to use as a template
$shell = New-Object -COM WScript.Shell
$shortcut = $shell.CreateShortcut($destination)  ## Open the lnk
$shortcut.TargetPath = "C:\path\to\new\exe.exe"  ## Make changes
$shortcut.Description = "Our new link"  ## This is the "Comment" field
$shortcut.Save()  ## Save

Comme cela utilise l'objet COM Shell, vous pouvez également le faire avec WSH ou même VBA dans Office!


2
Je souhaite modifier son contenu, de préférence dans un éditeur hexadécimal, car je pense qu'il est peut-être corrompu et que je ne fais pas confiance à Explorer pour m'en expliquer correctement le contenu.
Jez

Je suppose que la recréer est alors terminée? Si tel est le cas, essayez l’un des éditeurs même si je ne suis pas sûr de ce qui l’aurait corrompue.
Julian Knight

1
Eh bien, il n’a jamais été difficile d’éditer, du moins sous Windows XP. En fait, il était plus difficile de convaincre un programme de le traiter de la même manière qu’un lien symbolique. L'exécution d'une application de la console, par exemple editavec l'argument chemin d'accès au raccourci, ouvrira le fichier de raccourci. Les programmes qui traitent le raccourci de la même manière qu’un lien symbolique l’analysent eux-mêmes (éventuellement via des fonctions de shell). Windows a-t-il eu recours à des liens symboliques ressemblant à des raccourcis après XP?
Ruslan

Le prix du progrès! Cela ne sert à rien d'avoir un mécanisme pour définir les liens que la plupart des applications ignorent ensuite. Je ne connais pas beaucoup de raisons pour lesquelles il faut éditer directement .lnk.
Julian Knight

3
@ JulianKnight J'ai eu une utilisation une fois pour les générer par programme pour le placement dans un dossier qui a servi d'index. Je ne devais assumer aucun droit pour installer un logiciel, mais nous utilisions déjà VBA. Modifier un modèle .lnk s'est avéré plus facile que d'en générer un à partir de rien.
Chris H

4

Les fichiers .LNK sont interprétés par le shell. Si vous ouvrez une invite de commande et appelez votre outil d'édition (disons simplement le Bloc-notes par exemple) en utilisant le fichier .LNK comme argument, cela devrait contourner le shell et ouvrir le contenu du fichier .LNK lui-même.

notepad.exe shortcut.lnk

Non, ça ne marche pas. Il ouvre le fichier des .lnkpoints.
Jez

Dans quelle application essayez-vous d'ouvrir le lien?
Wes Sayeed

3
C'est faux. J'ai essayé cette réponse et ça marche.
Vinayak

3
@ Vinayak C'est une déclaration assez audacieuse. Cela peut fonctionner pour vous dans la situation dans laquelle vous l'utilisez, mais cela pourrait ne pas fonctionner pour Jez.
Jon

1

Si vous utilisez CMD pour exécuter un programme avec le fichier de liaison en tant que paramètre, ce paramètre est transmis textuellement au programme. C'est au programme de décider comment gérer le lien.

J'ai testé cela avec FRHED , l'éditeur hexadécimal gratuit (et portable): lorsque vous l'exécutez à partir de la ligne de commande, en passant un lien en paramètre, il vous demande si vous souhaitez ouvrir le fichier lié à ( Oui ), le lien lui-même. ( Non ) ou Annuler .

Bizarrement, si vous utilisez Ouvrir dans le menu Fichier FRHED , le fichier cible s'ouvre sans rien demander.

Sur XP, j'ai FRHED dans mon menu contextuel SendTo , et cela fonctionne de la même manière que CMD . J'imagine que Win7 est similaire (j'utilise un système Win7 pour une application dédiée et je ferai de simples tests dessus, comme ci-dessus, mais je ne plaisante pas avec sa configuration).


1
Ce n'est pas Windows qui vous le demande. C'est Frhed qui vous demande quoi faire
Vinayak

Tout à fait raison: idiot de moi - je vais changer ma réponse.
AFH

Je trouve très utile de placer le Bloc-notes dans mon SendTomenu, car il me permet d’ouvrir tous les fichiers (y compris les raccourcis) dans le Bloc-notes.
Scott

Observation finale (?): Toute vue ou tout programme d’édition basé sur DOS ouvrira toujours le lien, jamais la cible, car la fonction d’ouverture de fichier DOS ne connaît rien des liens. Par conséquent, aucun traitement particulier n’est fait pour eux, contrairement au fichier Windows ouvert. .
AFH

1

Si vous avez des raisons de modifier souvent ces fichiers, ajoutez un raccourci vers notepad.exe dans votre dossier SendTo (Sous Windows 7: C: \ Utilisateurs \ USER \ AppData \ Roaming \ Microsoft \ Windows \ SendTo). Cela rend "Envoyer à notepad.exe" disponible à partir de votre RT. Cliquez sur le menu contextuel. Le fichier .ink va s'ouvrir et peut être modifié et enregistré dans notepad.exe.


0

Les fichiers .lnk ne sont que des fichiers jusqu'à ce qu'un composant de niveau supérieur, tel que Explorer.EXE, leur affecte une gestion. À un niveau inférieur (NTFS), ils ont toujours une structure normale comprenant un flux de données. En particulier, tout le contenu est dans le foo.lnk::$DATAflux. Tous les outils de niveau supérieur ne reconnaîtront pas cette syntaxe. S'ils supposent que c'est un nom de fichier étrange et le transmettent, ils obtiendront le contenu .lnk.

Par exemple, sur la ligne de commande, MORE < foo.lnk::$DATA > conles données seront imprimées, mais c'est un peu du charabia (les parties sont binaires)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.