19,585
edits
Paradox-01 (talk | contribs) mNo edit summary |
m (link fixes) |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==Research== | ==Research== | ||
===General=== | ===General structure=== | ||
* https://learn.microsoft.com/en-us/windows/win32/sysinfo/structure-of-the-registry | |||
* Every node is a '''key''' that can have '''subkeys''' and/or data ("'''value'''") which is displayed at the right side of the regedit GUI. | |||
* Each '''value''' has 3 attributes: '''name''', '''type''', '''data''' | |||
===Hive=== | |||
* '''HKEY_CLASSES_ROOT is a <span style="color:red">merged view</span>''' of the '''...\Software\Classes''' sub hierarchies in | * '''HKEY_CLASSES_ROOT is a <span style="color:red">merged view</span>''' of the '''...\Software\Classes''' sub hierarchies in | ||
** HKLM ('''HKEY_LOCAL_MACHINE''') | ** HKLM ('''HKEY_LOCAL_MACHINE''') | ||
Line 9: | Line 15: | ||
====Minimum requirements for new file types | ===Key types=== | ||
'''Reg_SZ''' | |||
* Standard string | |||
'''Reg_EXPAND_SZ''' | |||
* Allows system variables like in <code>"'''%SystemRoot'''"\Notepad.exe %1</code> | |||
* When used it expands to become an actual path. | |||
'''Other''' | |||
* https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-value-types | |||
===Minimum requirements for new file types=== | |||
* '''HKEY_CLASSES_ROOT\.[yourExt]\shell\open\command''' | * '''HKEY_CLASSES_ROOT\.[yourExt]\shell\open\command''' | ||
* this | * if this key is to store a system variable, it's '''Default value''' needs to be 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 | ** 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=== | |||
* '''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\[<span style="color:red">ext</span>file]''' | 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]''' | ||
Line 31: | Line 49: | ||
===User overrides=== | |||
The following will override HKEY_LOCAL_MACHINE keys as the HKEY_CURRENT_USER has a higher priority. | The following will override HKEY_LOCAL_MACHINE keys as the HKEY_CURRENT_USER has a higher priority. | ||
Line 39: | Line 57: | ||
OpenWithList | OpenWithList | ||
OpenWithProgids | OpenWithProgids | ||
UserChoice | |||
If you set a default program for a file type, "UserChoice" will be created and point to that program and its (shell) context menu. | |||
Better do backup and restore it when your own changes get uninstalled. | |||
===System overrides (backups) ?=== | |||
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts | Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts | ||
Applications\NOTEPAD.EXE_.yourExt (type REG_DWORD) | Applications\NOTEPAD.EXE_.yourExt (type REG_DWORD) | ||
''other_extension''_.yourExt (type REG_DWORD) | ''other_extension''_.yourExt (type REG_DWORD) | ||
<!-- | |||
===Default programs=== | |||
* "In Windows 10 to add the program to the "Defaults Programs" list, the program should have the "CompanyName" in resources." - [https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/how-to-add-my-own-program-to-the-list-of-default/cd1d1305-9870-4156-9b99-fc03b40c1fc9 Nazaury] | |||
--> | |||
===Sub Menus=== | |||
For sub menus you need a '''SubCommands''' value. The commands may contain points in their name and are separated by semicolons. | |||
shell | |||
| | |||
+-- MenuName | |||
| | |||
+-- Name: Icon, Type: REG_SZ, Data: "PATH_to_exe" | |||
+-- Name: MUIVerb, Type: REG_SZ, Data: displayed name | |||
+-- Name: '''SubCommands''', Type: REG_SZ, Data: MenuName.commandName1;MenuName.commandName2;MenuName.commandNameN | |||
Individual commands are then stored at | |||
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell | |||
MenuName.commandName1 | |||
| | |||
+-- command | |||
MenuName.commandName2 | |||
| | |||
+-- command | |||
MenuName.commandNameN | |||
| | |||
+-- command | |||
===Terms=== | ===Terms=== | ||
* The H in abbreviations stands for Hive. | * The H in abbreviations stands for Hive. | ||
[[Category:Modding ideas]] |