Talk:Windows Shell Extension: Difference between revisions
Paradox-01 (talk | contribs) (indeed, no red button "easy" for modding ^_-) |
Paradox-01 (talk | contribs) mNo edit summary |
||
Line 7: | Line 7: | ||
* Adding a Key to '''HKEY_CLASSES_ROOT\Software\Classes''' will add a key in '''HKEY_LOCAL_MACHINE\SOFTWARE\Classes''' and vice versa. | * Adding a Key to '''HKEY_CLASSES_ROOT\Software\Classes''' will add a key in '''HKEY_LOCAL_MACHINE\SOFTWARE\Classes''' and vice versa. | ||
====Minimum requirements for new file types==== | ====Minimum requirements for new file types==== | ||
Line 13: | Line 14: | ||
** creating this manually gives a REG_SZ type, which will not work and cannot be changed within the regedit GUI | ** creating this manually gives a REG_SZ type, which will not work and cannot be changed within the regedit GUI | ||
** REG_EXPAND_SZ type can be created with reg files and '''programmatically''' | ** REG_EXPAND_SZ type can be created with reg files and '''programmatically''' | ||
====Mind already existing alternate hierarchies==== | ====Mind already existing alternate hierarchies==== | ||
* '''HKEY_CLASSES_ROOT\.[yourExt] | * '''HKEY_CLASSES_ROOT\.[yourExt] | ||
If not empty, this key might have data such as '''<span style="color:red">ext</span>file''' which will point to '''HKEY_CLASSES_ROOT\ | If not empty, this key might have data such as '''<span style="color:red">ext</span>file''' which will point to '''HKEY_CLASSES_ROOT\[<span style="color:red">ext</span>file]''' | ||
The second key then looks like this in full length: | The second key then looks like this in full length: | ||
* '''HKEY_CLASSES_ROOT\ | * '''HKEY_CLASSES_ROOT\<span style="color:red">ext</span>file\shell\open\command''' | ||
Such structures sometimes get automatically created: | |||
* '''HKEY_CLASSES_ROOT\<span style="color:red">ext</span>_auto_file\shell\open\command''' | |||
<!-- test | |||
%SystemRoot%\system32\NOTEPAD.EXE %1--> | |||
====User overrides==== | ====User overrides==== | ||
The following will override HKEY_LOCAL_MACHINE keys as the HKEY_CURRENT_USER has a higher priority. | |||
So, you can also think of HKEY_LOCAL_MACHINE keys as a fallback when HKEY_CURRENT_USER are removed again. | |||
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.yourExt | Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.yourExt | ||
OpenWithList | OpenWithList | ||
OpenWithProgids | OpenWithProgids | ||
====System overrides (backups ?)==== | ====System overrides (backups ?)==== |
Revision as of 21:33, 6 May 2019
Research
General
- HKEY_CLASSES_ROOT is a merged view of the ...\Software\Classes sub hierarchies in
- HKLM (HKEY_LOCAL_MACHINE)
- HKCU (HKEY_CURRENT_USER)
- HKCU is a mirrored view of HKEY_USERS\<User-SID>
- Adding a Key to HKEY_CLASSES_ROOT\Software\Classes will add a key in HKEY_LOCAL_MACHINE\SOFTWARE\Classes and vice versa.
Minimum requirements for new file types
- HKEY_CLASSES_ROOT\.[yourExt]\shell\open\command
- this command must have a Default key that is of type REG_EXPAND_SZ
- creating this manually gives a REG_SZ type, which will not work and cannot be changed within the regedit GUI
- REG_EXPAND_SZ type can be created with reg files and programmatically
Mind already existing alternate hierarchies
- HKEY_CLASSES_ROOT\.[yourExt]
If not empty, this key might have data such as extfile which will point to HKEY_CLASSES_ROOT\[extfile]
The second key then looks like this in full length:
- HKEY_CLASSES_ROOT\extfile\shell\open\command
Such structures sometimes get automatically created:
- HKEY_CLASSES_ROOT\ext_auto_file\shell\open\command
User overrides
The following will override HKEY_LOCAL_MACHINE keys as the HKEY_CURRENT_USER has a higher priority.
So, you can also think of HKEY_LOCAL_MACHINE keys as a fallback when HKEY_CURRENT_USER are removed again.
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.yourExt OpenWithList OpenWithProgids
System overrides (backups ?)
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts Applications\NOTEPAD.EXE_.yourExt (type REG_DWORD) other_extension_.yourExt (type REG_DWORD)
Terms
- The H in abbreviations stands for Hive.