Pergunta

Gostaria de lançar um URL quando um e-mail chega em Outlook. configuração I uma regra e tem que acionar uma função script. Parece que eu quero chamar ShellExecute para iniciar o URL em um navegador, mas quando eu bati esta linha:

    ShellExecute(0&, "open", URL, vbNullString, vbNullString, _
vbNormalFocus)

O método não está definido. Alguma idéia?

Foi útil?

Solução

ShellExecute é uma função em uma DLL do Windows. Você precisa adicionar uma declaração para ele como este em um módulo VBA:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
    ByVal hWnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long      

A diferença entre a sua solução Shell e ShellExecute é que ShellExecute usará o manipulador de sistema padrão para URLs para abrir o link. Isso não tem que ser IE. Sua solução será sempre abri-lo no IE. O seu é o equivalente de colocar iexplore.exe na caixa de executar no Windows. ShellExecute é o equivalente de apenas colocar o URL na caixa de executar no Windows.

Outras dicas

Você também pode usar FollowHyperlink de VBA para abrir URLs no navegador padrão. Ele também pode ser usado para abrir documentos com o aplicativo registrado, para enviar e-mails e navegar em pastas.

Como alternativa, o uso Shell, como este:

Sub LaunchURL(Item As Outlook.MailItem)
    Shell ("C:\Program Files\Internet Explorer\IEXPLORE.EXE" & " " & Item.Body)
End Sub

Você pode criar arquivo de lote onde você escreve o seguinte:

start http://someurl.com/?a=1^&b=2

E você configurar regra do Outlook para lançar este arquivo em lotes. Aviso ^ sinal antes e. Esta é sequência de escape para & em arquivos em lote. Note também que você precisa ter o conjunto padrão do navegador em seu sistema operacional Windows, quase 100% de probabilidade de que você tê-lo.

Shell ("CMD /C start http://www.spamcop.net"), vbNormalFocus
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top