Hi
Sorry, I disagree because on my system the "Open with" option is chaotic.
The "Open With" provides :-
3 options for a *.doc file
2 options for a *.lst
6 options for a *.txt
no "open with" for *.bat
no "open with" for *.cmd
no "open with" for *.odt
no "open with" for *.ods
These chaotic options are something to do with Windows knowledge of the various applications that claim relevant capabilities.
This knowledge is probably independent of the "File associations" knowledge,
but any sort of "Windows knowledge" can be mistaken at the best of times,
so if File Associations is trashed the "open with" options could be trashed.
n.b. of the last 2 extensions, Windows knows nothing, and I like it that way.
It knows nothing because *.odt and *.ods are Open Office documents,
and I have Portable Open Office "installed" on a non-system partition,
so my method is the ONLY fail-safe technique I know off.
"Open With" data is part of file association data, but it definitely is a bit convoluted. Thankfully, I recently added the ability to enumerate the items that would appear in the menu from my File library.
Basically, it all starts in the key HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\"
within the OpenWithProgIDs and OpenWithList Keys there (if present)
For OpenWithList, the key is the "MRUList" key, which stores a character sequence. the other values in the key are loaded into the Open with menu in alphabetic order.
The Application Executable names are easily converted to full names of the program with some calls to the version API- this is what my program does, and I believe explorer does this as well.
The "OpenWithProgIDs" entry lists other "ProgIDs" that need to be consulted. for example, with a default Windows install, a .txt file's "progID" is "txtfile". the default value of the "extension" key, such as HKEY_CLASSES_ROOT\.txt, will have a default value set to that extensions progID. so HKEY_CLASSES_ROOT\txtfile can contain all the relevant shell extensions and association data for any number of different files- such as if HKEY_CLASSES_ROOT\.log had a default value of txtfile, it's association data would become txtfile.
It's a long and convoluted process, since there are often a number of entries here, but the end result can be pretty neat, with a few tricks with VERSION and the extraction of the program icons:
In this case, I have selected JPG files.