With Windows XP I could use the Control Panel to add a new file extension, associate it with a program, and assign an icon to it. I did that using Folder Options in the Control Panel. Folder Options has a tab in it called "File Types".
But Windows 7 Folder Options does not have that tab. And the suggested place for file associations (Default Programs) does not let me add a new extension.
How do I do what I want to (i.e. associate a new extension with an existing program and also apply a new icon to it)?
Unfortunately it's one of those things they made more complicated in an attempt to make it more simple (e.g. you're able to change the associated program, but that's it).
You can either use third party programs or just edit the registry yourself (do not modify the registry unless you're really sure on what you're doing! Mistakes might break settings or even make your system unbootable!):
- Right click
HKEY_CLASSES_ROOT
and pickNew
,Key
. Name it according to your desired file extension, e.g..ext
. If it exists already, you can skip this step. - Set the default value of the key you just created to some unique name that isn't used yet, e.g.
MyFileType
. Again, if it's set already, skip this step. - Create another new key using the same name you picked in the previous step. Skip this too, if the key exists already.
- Set the default value of the new key to the name that should appear in Windows Explorer and other programs as the file type.
- Right click the new key and create a subkey
DefaultIcon
. - Set the new key's default value to
C:\Some\Path\To\Your\Icon\Ressource.ico,0
(the0
is the index of the icon to be used; if there's only one icon in the ressource, it has to be 0). - Create another new key next to
DefaultIcon
and call itshell
. - Now, for each verb/action you'd like to associate, create a new sub key with the desired name. Some verbs are preset and will automatically use localized names, e.g.
open
,edit
orprint
. - For each verb create a sub key
command
and set its default value to the program to be run. Also make sure to include all parameters needed, adding quotes if there are spaces inside, e.g."C:\My Path\My Program.exe" "%1"
.%1
will be replaced with the actual file name picked for this action.
If "Open With" isn't offered, just click on "Open". If there is no default program already associated with the file type, you'll be given a choice of searching for a suitable program on the Web, or selecting a program from a list of installed programs, just as with the old "Open With".
In Windows 7, you can also right click and go Properties -> General Tab and there is "Open with" and [Change] button. This way you can also set association for a new file type.
For Windows, you can always right click and select 'Open With'. Choose the option that says select a program from a list. You can then select your own program and tell it to open files of such extension with that program by default. To change the icons, this link can help you (Change Windows icon)
To avoid editing the registry, instead create a new file with the desired extension. When you double-click it you will get the Can't Open dialog and you can select a program from a list of installed programs. Browse to select your desired application, add the description and check the always use the selected program. Now the extension is in the default programs list and can be further edited and changed as you are used to.
- If 'open with' is available after right clicking, it's pretty straight forward. If not...
- Type 'default programs' into start menu, then select 'set associations'.
I don't know why MS decides to sometimes take away the 'open with' option...
Probably to streamline the experience and make it easier to understand (although I don't know why they didn't keep it behind some "advanced" button for power users).
Because that's Microsoft's entire MO in general...presume that every single person that uses their software is incapable of making technical decisions. It would be so simple for them to include one little link in that Default Programs window saying "add an extension", and for that to be linked to another window where you can easily do this within a safe, GUI environment. Instead they force us to edit the registry, which is 10 times more dangerous! And if they're worried about average Joe's wrecking their computers, they could include a simple message box that informs the user of the risk!
Honestly MS, I've been an amateur developer for no more than 10 years, and the biggest software giant in the world can't employ programmers with more, or even an equal level of, knowledge as me?!?! So how did you get to that status in the first place?!?! It really boggles my mind!
Sorry for not actually adding anything constructive to the discussion but this whole perception by MS of its customers as being non-trustworthy little children really cheeses me off...and I came here in search of an answer to the same question that the OP asked, but I guess there is none (other than messing around with the registry, which I really hate doing).
来源:https://stackoverflow.com/questions/9093481/add-a-new-file-association-in-windows-7