Comando para listar todos os aplicativos capazes de abrir uma determinada extensão

0

Estou criando uma espécie de aplicativo de catálogo de arquivos e, para um de seus usos, gostaria de obter uma lista de todos os aplicativos atualmente instalados capazes de abrir arquivos com a extensão do arquivo atualmente selecionado. Então, digamos que eu tenha selecionado um arquivo .docx , o aplicativo listaria aplicativos como o MS Word, OpenOffice, LibreOffice. Como eu conseguiria essa lista tanto no Mac & Windows?

    
por Max Steenbergen 30.03.2016 / 10:05

2 respostas

1

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.

    
por 30.03.2016 / 10:50
0

Para o Mac, há outra pergunta / resposta aqui no SuperUser que parece resolver isso: É possível consultar o banco de dados de serviços de inicialização para aplicativos que abrirá um arquivo arbitrário ou tipo de UTI?

O truque parece estar recebendo o "UTI" primeiro (como se fosse um tipo MIME) e, em seguida, procurando aplicativos que possam abri-lo usando duti .

    
por 31.03.2016 / 20:16