Windows registry keys that affect shortcuts behavior

Windows registry keys that affect shortcuts behavior

I want to ask if someone has an info about windows registry key HKCR\lnkfile. As I've found out it describes how shortcuts have to do their work but cannot manage to find much info, all I know, that if this key is removed then shortcuts in windows machine do not working. So want to ask if someone knows something about that key, its subkeys and values.

答案1

Most basics regarding these keys can be found in this MSDN article.

Under Windows 8 there are a few sub keys and values:

  • The default value usually defines the visible file type name, but here it is ignored (see FriendlyTypeName).
  • Clsid (key) defines the CLSID associated with shortcuts.
  • EditFlags (value) is a bitmask using the FILETYPEATTRIBUTEFLAGS.
  • FriendlyTypeName (value) is simply a linked string ressource identifying the file (overwriting the default value).
  • IsShortcut (value) is a hint for Explorer and common dialog controls to show the shortcut arrow in the corner of the file icon. The value doesn't matter, the existance of the value is enough.
  • NeverShowExt (value) is another hint and does exactly what the name implies.
  • ShellEx (key) defines additional handlers (CLSIDs in keys):
    • ContextMenuHandlers defines additional entries in the files' context menu like "Open containing folder" (not sure about the exact wording).
    • DropHandler defines additional entries in the drag & drop menu (drag a shortcut to another folder using the right mouse button).
    • IconHandler overwrites the file type's default icon. This essentially defines the CLSID being responsible to pick the proper icon.
    • PropertySheetHandlers add additional tabs to the file properties. In this case it's the "Shortcut" tab.
  • tabsets (key) I'm not really sure about this one, but I assume it defines the file type specific ribbon to be shown in Windows 8.

The default CLSID for shortcuts is {00021401-0000-0000-C000-000000000046}, which can be found under HKCR\CLSID\{00021401-0000-0000-C000-000000000046}. This key essentially controls the library file containing the code to handle the file type (e.g. double clicking/the open verb), which is Shell32.dll.

相关内容