Un .lnk
fichier dans Windows est un fichier réel destiné à être un raccourci vers un autre fichier. Cependant, je souhaite vraiment voir le contenu du .lnk
fichier 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?
.lnk
fichiers avec une nouvelle extension.Réponses:
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:
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:
HxD
Ouvrir la boîte de dialogue Oui
Glisser-déposer Non
XVI32 , éditeur Hex gratuit Neo , Tiny Hexer , wxHexEditor , Hex-Editor MX , Frhed
Ouvrir la boîte de dialogue Non
Glisser-déposer Oui
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
.lnk
fichier en une extension différente, non existante, telle que.lne
:Si vous avez plusieurs fichiers, vous pouvez également les renommer tous en même temps:
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:
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
.lnk
fichier typique ressemble à quelque chose comme ça en interne:Les vingt premiers octets sont toujours les suivants:
Lectures complémentaires
la source
File | Open
semble avoir ouvert le.lnk
fichier. Merci.J'ai essayé cela et cela fonctionne pour moi sur Windows 8.1:
Ouverture de
LNK
fichiers dans le Bloc-notes:Open
boîte de dialogue, le Bloc-notes ouvrira leEXE
fichier pointé par leLNK
fichier.Ouverture de
LNK
fichiers dans l’ éditeur HxD hex :File
→Open
)Ouverture de
LNK
fichiers à l’invite de commande:LNK
fichiers et tapez la commande:TYPE SHORTCUTNAME.LNK
Ouverture de
LNK
fichiers dans à peu près n'importe quel programme:PROGRAM_NAME.EXE "path to LNK file"
la source
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 :
Comme cela utilise l'objet COM Shell, vous pouvez également le faire avec WSH ou même VBA dans Office!
la source
edit
avec 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?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.
la source
.lnk
points.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).
la source
SendTo
menu, car il me permet d’ouvrir tous les fichiers (y compris les raccourcis) dans le Bloc-notes.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.
la source
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::$DATA
flux. 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 > con
les données seront imprimées, mais c'est un peu du charabia (les parties sont binaires)la source