Abrir arquivo em uma aplicação
.: Necessidade :.
Abrir o arquivo que o usuário associou a um texto na aplicação (podendo ser QUALQUER TIPO de arquivo *.doc, *.avi, *.txt; *.pas, entre outros)
Por exemplo: \\maquina1\tmp\teste1.pdf
\\maquina2\tmp\teste.doc
\\maquina3\tmp\teste155.avi
\\maquina4\tmp\teste.swf
Logo, devo fazer um módulo em que um outro usuário, além de ler o texto escrito, consiga abrir o anexo, ou seja, clicar 2x no arquivo (NA APLICAÇÃO) e o Windows se encarregar de abrir o arquivo no programa apropriado ou abrir aquela famosa janela que aparece quando clicamos num arquivo que não tem programa padrão associado:
´O Windows não pode abrir este arquivo:
Arquivo: XYZ.tmp,
Para abrir o arquivo, o Windows precisa saber com que programa ele foi criado. O windows pode ser conectar à Internet ... O que você deseja fazer?
0 Use o serviço Web para encontrar o programa apropriado
0 Selecionar o programa na lista
.: Informações complementares :.
1. O caminho completo para o arquivo e seu nome estão armazenados em um campo de uma tabela do meu banco de dados (esse não é o meu problema).
2. NÃO É uma aplicação de email e não tenho nada usando componentes Indy.
3. Não é um e-mail.
Abrir o arquivo que o usuário associou a um texto na aplicação (podendo ser QUALQUER TIPO de arquivo *.doc, *.avi, *.txt; *.pas, entre outros)
Por exemplo: \\maquina1\tmp\teste1.pdf
\\maquina2\tmp\teste.doc
\\maquina3\tmp\teste155.avi
\\maquina4\tmp\teste.swf
Logo, devo fazer um módulo em que um outro usuário, além de ler o texto escrito, consiga abrir o anexo, ou seja, clicar 2x no arquivo (NA APLICAÇÃO) e o Windows se encarregar de abrir o arquivo no programa apropriado ou abrir aquela famosa janela que aparece quando clicamos num arquivo que não tem programa padrão associado:
´O Windows não pode abrir este arquivo:
Arquivo: XYZ.tmp,
Para abrir o arquivo, o Windows precisa saber com que programa ele foi criado. O windows pode ser conectar à Internet ... O que você deseja fazer?
0 Use o serviço Web para encontrar o programa apropriado
0 Selecionar o programa na lista
.: Informações complementares :.
1. O caminho completo para o arquivo e seu nome estão armazenados em um campo de uma tabela do meu banco de dados (esse não é o meu problema).
2. NÃO É uma aplicação de email e não tenho nada usando componentes Indy.
3. Não é um e-mail.
Rasn
Curtidas 0
Respostas
Rodc
24/04/2008
Crie os links para os arquivos e quando o cliente clicar neles, use o ShellExecute da unit ShellAPI para rodar o arquivo.
ShellExecute(nil, ´open´, PChar(´\\maquina1\tmp\teste1.pdf´), ´´, ´´, SW_SHOW);
GOSTEI 0
Rasn
24/04/2008
rodc,
Isso funciona corretamente quando existe um programa (visualizador) associado para a extensão, por exemplo:
.doc -> Word
.xls -> Excel
.txt -> Notepad
.pdf -> Adobe Reader
Porém, no meu caso, o usuário associa QUALQUER EXTENSÃO e muitas vezes são proprietárias, por exemplo, .xtr .sip .rem
Logo, nesses casos, precisaria que o Windows mostrasse a janela de escolha do programa apropriado (igual a do Windows Explorer quando o arquivo não tem um software default associado e a gente tenta abrir o arquivo).
Tem alguma idéia de como posso resolver isso?
Obrigado pela atenção!
Isso funciona corretamente quando existe um programa (visualizador) associado para a extensão, por exemplo:
.doc -> Word
.xls -> Excel
.txt -> Notepad
.pdf -> Adobe Reader
Porém, no meu caso, o usuário associa QUALQUER EXTENSÃO e muitas vezes são proprietárias, por exemplo, .xtr .sip .rem
Logo, nesses casos, precisaria que o Windows mostrasse a janela de escolha do programa apropriado (igual a do Windows Explorer quando o arquivo não tem um software default associado e a gente tenta abrir o arquivo).
Tem alguma idéia de como posso resolver isso?
Obrigado pela atenção!
GOSTEI 0