Search code examples
c#windowsregistryfile-association

How do I add my application in the Default Programs list


I want to add my application in the Default Programs list and read articles and questions like these:
How do I add my application in the Default Programs list of Windows Vista/7?
http://msdn.microsoft.com/en-us/library/cc144154%28v=vs.85%29.aspx
and do all of theme but no chance.
I make registry keys like these:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         TestApp.AssocFile.TA4
            (Default) = TA4 Format
            DefaultIcon
               (Default) = %ProgramFiles%\TestApp\TA4.ico
            shell
               open
                  command
                     (Default) = %ProgramFiles%\TestApp\TA4Opener.exe


HKEY_LOCAL_MACHINE
   SOFTWARE
      Test
         TestApp
            Capabilities
               ApplicationDescription = App Description 
               FileAssociations
                  .ta4 = TestApp.AssocFile.TA4


HKEY_LOCAL_MACHINE
   SOFTWARE
      RegisteredApplications
         TestApp = Software\Test\TestApp\Capabilities   

but when I open Control Panel Set Default programs I can't find my application.
What I missed?


Solution

  • Add ApplicationName value under Capabilities, in addition to all values you already have.

    HKEY_LOCAL_MACHINE
      SOFTWARE
        Test
          TestApp
            Capabilities
              ApplicationName = Your Application Name
    

    If your application still does not show up in the Set Default Programs list, make sure executable file listed under shell\open\command ( in your example, %ProgramFiles%\TestApp\TA4Opener.exe) has Version resource and Version.CompanyName is not empty.