leoni_dias 20/4/2018, 22:50
Boa noite.
Por isso eu citei pra verificar o programa que o windows associou à determinada extensão, o programa padrão.
Fiz da forma abaixo. Funciona perfeitamente, mas tá dando erro ao fechar o access.
'Em um módulo
Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long
'----------------------------------------------------------------------------------------------------
'Em um evento do form ou botão
Dim nomearq$, a, resultado
nomearq$ = "INSTALADOR.pdf"
a = FindExecutable(nomearq, CurrentProject.PATH, resultado)
Select Case a
Case 0 ': MsgBox "Memória insuficiente para realizar esta operação", vbCritical
extenso = "Memória insuficiente"
Case 31 ': MsgBox "Não há nenhum aplicativo associado para essa extensão <.pdf>", vbInformation
extenso = "Não há nenhum aplicativo associado"
Case 2 ': MsgBox "Arquivo especificado não pôde ser encontrado.", vbInformation
extenso = "Arquivo especificado não pôde ser encontrado"
Case 3 ': MsgBox "Caminho não encontrado.", vbInformation
extenso = "Caminho não encontrado."
Case 5 ': MsgBox "Executável inválido (non-Win32 .exe or error in .exe).",
extenso = "Executável inválido"
Case Else 'se não deu nenhum erro, abre o arquivo
extenso = "Existe programa para o arquivo"
End Select