Para o Windows: Não há um caminho fácil, mas um script pode ser escrito para enumerar os recursos de cada aplicativo registrado. A lista de aplicativos oficiais / registrados é armazenada nessas duas chaves de registro:
HKEY_CURRENT_USER \ SOFTWARE \ RegisteredApplications HKEY_LOCAL_MACHINE \ SOFTWARE \ RegisteredApplications
Os aplicativos da Web universais parecem registrar as entradas no local nº 1 acima.
O painel direito lista cada aplicativo registrado com a interface do usuário "Programas padrão" no Windows.
Por exemplo, o Firefox adiciona uma entrada lá, com os dados do valor mencionados como:
Software \ Clients \ StartMenuInternet \ FIREFOX.EXE \ Capabilities
Portanto, o local acima em HKCU ou HKLM possui as informações sobre quais tipos de arquivo e protocolos o programa pode manipular.
Indo para o local: HKEY_LOCAL_MACHINE \ SOFTWARE \ Clients \ StartMenuInternet \ FIREFOX.EXE \ Capabilities
Existe uma subchave denominada "FileAssociations" que especifica a lista de tipos de arquivos que pode manipular e menciona os ProgIDs a serem usados para cada tipo de arquivo.
Um script pode ser escrito, que enumera cada aplicativo registrado e, em seguida, enumera cada tipo de arquivo que ele pode manipular.
(Nota: O diálogo "Abrir com" no Windows faz todo esse trabalho.)
(ou)
Abrir programas padrão > Defina seus programas padrão. Selecione um programa na lista e clique em "escolher padrões para este programa" Isso lista os tipos de arquivos que o programa pode manipular. Faça isso para todas as aplicações listadas.