Cadastre programa do Windows com o protocolo mailto programaticamente

votos
33

Como faço para torná-lo tão mailto:ligações serão registradas com o meu programa?

Como eu poderia então manipular esse evento no meu programa?

A maioria das soluções I encontrados a partir de uma rápida pesquisa no Google é como fazer isso manualmente, mas eu preciso fazer isso automaticamente para os usuários do meu programa se clicar em um botão, como definido como cliente de email padrão.

Editar : Removida a referência ao Delphi, porque a resposta é independente do seu idioma.

Publicado 01/08/2008 em 23:08
fonte usuário
Em outras línguas...                            


3 respostas

votos
18

@ Dillie-O: Sua resposta me colocou na direção certa (Eu deveria ter esperado para ser apenas uma alteração no registro) e eu tenho esse trabalho. Mas eu vou marcar este como a resposta, porque eu vou colocar algumas informações adicionais que eu encontrei enquanto trabalhava neste.

A solução para esta questão realmente não importa qual linguagem de programação você está usando, contanto que há alguma maneira de modificar as configurações do registro do Windows.

Finalmente, aqui está a resposta:

  • Para associar um programa com o protocolo mailto para todos os usuários em um computador, altere o HKEY_CLASSES_ROOT \ mailto \ shell \ \ O valor padrão de comando aberta a:
    " executável do programa " "% 1"
  • Para associar um programa com o protocolo mailto para o usuário atual , alterar as HKEY_CURRENT_USER \ Software \ Classes \ mailto \ shell \ \ O valor padrão de comando aberta a:
    " executável do programa " "% 1"

O% 1 será substituído por toda a URL mailto. Por exemplo, dado o link:

<a href="mailto:user@example.com">Email me</a>

O seguinte será executado:
" executável do programa " "mailto: user@example.com"

Update (via comentário por shellscape):
A partir do Windows 8, este método não funciona como esperado. Win8 impõe a seguinte chave: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati ons \ URLAssociations \ MAILTO \ UserChoice para o qual o ProgID do aplicativo selecionado é hash e não pode ser falsificado. É um PITA real

Respondeu 05/08/2008 em 02:49
fonte usuário

votos
12

Pelo que tenho visto, há algumas chaves do registro que definem o cliente de email padrão. Sendo um deles:

Chave do sistema: [HKEY_CLASSES_ROOT\mailto\shell\open\command]

Nome do valor: (Default)

Tipo de dados: REG_SZ(Valor String)

Dados do valor: Mail program command-line.

Eu não estou familiarizado com Delphi 7, mas eu tenho certeza que existem algumas bibliotecas de edição do registo em lá que você pode usar para modificar este valor.

Alguns lugares listar mais do que isso chave , outros apenas esta chave, assim você pode precisar para testar um pouco para encontrar o caminho adequado (s).

Respondeu 01/08/2008 em 23:12
fonte usuário

votos
4

Aqui está a solução oficial da Microsoft para alterar programaticamente o cliente de email padrão. É Visual Basic, mas espero que o conceito é claro a partir desta:

http://support.microsoft.com/kb/299853

Respondeu 01/08/2008 em 23:18
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more