Windows Installer Registry Notes
From Aptana Development
SDOC: http://msdn2.microsoft.com/en-us/library/aa969374.aspx#attributes
HKEY_CLASSES_ROOT
- Aptana.IDE.SDOC.0
- (Default) = My Friendly Name
- EditFlags [REG_DWORD]= 0x00000001
- FriendlyTypeName [REG_EXPAND_SZ]= @%SystemRoot%\shell32.dll,-154
- InfoTip [REG_EXPAND_SZ]= @%SystemRoot%\shell32.dll,-54
- CurVer
- (Default) = Vendor.comp.1
- DefaultIcon
- (Default) = %SystemRoot%\shell32.dll,-1
Adding File Type Keys to the Registry
From: http://msdn2.microsoft.com/en-us/library/aa969371.aspx
The registry stores the file extension keys under HKEY_CLASSES_ROOT . These keys have the general form: .extension=ProgID. It is important to include the leading period when creating file type key entries in the registry. For example, if you want a file type with the short extension .myp and the long extension .myp-image to open with an application called MyProgram, then you use the following syntax.
- HKEY_CLASSES_ROOT
- .myp
- (Default) = vendor.MyProgram.1
- .myp-image
- (Default) = vendor.MyProgram.1
- vendor.MyProgram.1
- (Default) = MyProgram Application
- .myp
File type extension entries in the registry have several optional subkeys and attributes. Those used by file associations are:
- Default Value. Set the default value of the extension key to the ProgID to which it is linked. This is a registry string (REG_SZ).
- PerceivedType. Set this string to the PerceivedType to which the file belongs, if any. This string is not used by Windows versions prior to Windows XP. Generally, it is one of the following:
- Image
- Text
- Audio
- Video
- Compressed
- System
- Content Type. Set this string to the file type's MIME content type.
- OpenWithProgids. This subkey contains a list of alternate ProgIDs for this file type. The programs for these ProgIDs appear in the Open With dialog box. Whenever a program takes over this file type by changing the default value, it should also add an entry to this list.
- OpenWithList. This subkey contains one or more application keys for applications to appear in the Open With dialog box entry for the file type.
The general form of a file extension key is then:
- HKEY_CLASSES_ROOT
- .ext
- (Default) = ProgID.ext.1 (REG_SZ)
- PerceivedType= PerceivedType (REG_SZ)
- Content Type= mime content type (REG_SZ)
- OpenWithProgids
- ProgID2.ext.1
- ProgID3.ext.1
- OpenWithList
- AlternateProgram1.exe
- AlternateProgram2.exe
- ProgID.ext.1
- shellnew
- .ext
ShellExecute: http://msdn2.microsoft.com/en-us/library/aa969373.aspx
When the ShellExecute function is provided with the name of an executable file in its lpFile parameter, there are several places that it can look in an attempt to find the file.
- HKEY_LOCAL_MACHINE
- SOFTWARE
- Microsoft
- Windows
- CurrentVersion
- App Paths
- file.exe
- (Default) = The fully-qualified path and file name
- Path= A semicolon-separated list of directories
- DropTarget= {CLSID}
- file.exe
- App Paths
- CurrentVersion
- Windows
- Microsoft
- SOFTWARE
Default programs: http://msdn2.microsoft.com/en-us/library/aa969375.aspx
Notes From Other Applications
- Why write to HKCR or HKCU:
- Dynamic Data Exchange?
Adding a file association:
HKCR\UltraEdit.js SUCCESS Access: 0x2000000 HKCR\UltraEdit.js\shell SUCCESS Access: 0x2000000 HKCR\UltraEdit.js\shell\open SUCCESS Access: 0x2000000 HKCR\UltraEdit.js\shell\open\command NOT FOUND HKCR\UltraEdit.js\shell\open\command\(Default) SUCCESS ""C:\Program Files\IDM Computer Solutions\UltraEdit\Uedit32.exe" "%1"" HKCR\UltraEdit.js\shell\print SUCCESS Access: 0x2000000 HKCR\UltraEdit.js\shell\print\command NOT FOUND HKCR\UltraEdit.js\shell\print\command\(Default) SUCCESS ""C:\Program Files\IDM Computer Solutions\UltraEdit\Uedit32.exe" /p "%1"" HKCR\UltraEdit.js\(Default) SUCCESS "" HKCR\UltraEdit.js\Old Default SUCCESS "JSFile" HKCU\Software\Classes\.js\(Default) SUCCESS "UltraEdit.js"
Removing a file association (there should be a set value where is sets back the old association):
HKCR\UltraEdit.js\shell\open\command SUCCESS Key: 0xE1B57460 HKCR\UltraEdit.js\shell\open SUCCESS Key: 0xE293BAB8 HKCR\UltraEdit.js\shell\print\command SUCCESS Key: 0xE1B57460 HKCR\UltraEdit.js\shell\print SUCCESS Key: 0xE293BAB8 HKCR\UltraEdit.js\shell SUCCESS Key: 0xE44802F0 HKCR\UltraEdit.js SUCCESS Key: 0xE61EAC78
CreateKey HKCU\Software\Classes\TextPad.java SUCCESS Access: 0x2001F
SetValue HKCU\Software\Classes\TextPad.java\(Default) SUCCESS "Java Language Source file"
SetValue HKCU\Software\Classes\TextPad.java\AlwaysShowExt SUCCESS "1"
CreateKey HKCU\Software\Classes\TextPad.java\shell SUCCESS Access: 0x2001F
CreateKey HKCU\Software\Classes\TextPad.java\shell\Open SUCCESS Access: 0x2001F
CreateKey HKCU\Software\Classes\TextPad.java\shell\Open\ddeexec SUCCESS Access: 0x2001F
SetValue HKCU\Software\Classes\TextPad.java\shell\Open\ddeexec\(Default) SUCCESS "Open("%1")"
SetValue HKCU\Software\Classes\TextPad.java\shell\Open\ddeexec\Topic\(Default) SUCCESS "system"
SetValue HKCU\Software\Classes\TextPad.java\shell\Open\ddeexec\Application\(Default) SUCCESS "VisualStudio.8.0"
CreateKey HKCU\Software\Classes\TextPad.java\shell\Open\Command SUCCESS Access: 0x2001F
SetValue HKCU\Software\Classes\TextPad.java\shell\Open\Command\(Default) SUCCESS ""C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe" /dde"
CreateKey HKCU\Software\Classes\TextPad.java\DefaultIcon SUCCESS Access: 0x2001F
SetValue HKCU\Software\Classes\TextPad.java\DefaultIcon\(Default) SUCCESS "C:\Program Files\Microsoft Visual Studio 8\VJ#\bin\vjsproj.dll,1"
SetValue HKCU\Software\Classes\TextPad.java\(Default) SUCCESS "Java Language Source file"
SetValue HKCU\Software\Classes\TextPad.java\shell\open\ddeexec\(Default) SUCCESS "[open("%1")]"
SetValue HKCU\Software\Classes\TextPad.java\shell\open\ddeexec\application\(Default) SUCCESS "TextPad.5.0"
SetValue HKCU\Software\Classes\TextPad.java\shell\open\ddeexec\topic\(Default) SUCCESS "System"
SetValue HKCU\Software\Classes\TextPad.java\shell\open\command\(Default) SUCCESS ""C:\Program Files\TextPad 5\TextPad.exe" -s"
CreateKey HKCU\Software\Classes\TextPad.java\shell\print SUCCESS Access: 0x2001F
CreateKey HKCU\Software\Classes\TextPad.java\shell\print\command SUCCESS Access: 0x2001F
SetValue HKCU\Software\Classes\TextPad.java\shell\print\command\(Default) SUCCESS ""C:\Program Files\TextPad 5\TextPad.exe" -s -p "%1""
CreateKey HKCU\Software\Classes\TextPad.java\shell\printto SUCCESS Access: 0x2001F
CreateKey HKCU\Software\Classes\TextPad.java\shell\printto\command SUCCESS Access: 0x2001F
SetValue HKCU\Software\Classes\TextPad.java\shell\printto\command\(Default) SUCCESS ""C:\Program Files\TextPad 5\TextPad.exe" -s -pt "%1" "%2" "%3" "%4""
SetValue HKCU\Software\Classes\.java\(Default) SUCCESS "TextPad.java"
SetValue HKCU\software\Helios\TextPad 5\Associations\.java SUCCESS "VisualStudio.java.8.0"
SetValue HKCU\Software\Helios\TextPad 5\Document Classes\Java\Type SUCCESS 0x2


