2009-03-06 5 views
3

Я хотел бы запустить URL-адрес, когда сообщение электронной почты поступит в Outlook. Я устанавливаю правило и запускаю функцию скрипта. Похоже, я хочу назвать ShellExecute для запуска URL в браузере, но когда я ударил эту линию:Как запустить URL-адрес при поступлении сообщения электронной почты

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

Метод не определен. Есть идеи?

ответ

4

ShellExecute функция в DLL окон. Вы должны добавить объявление для него, как это в модуле 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  

Разница между раствором Shell и ShellExecute является то, что ShellExecute будет использовать обработчик системы по умолчанию для URL-адреса, чтобы открыть ссылку. Это не должно быть IE. Ваше решение всегда откроет его в IE. Ваш эквивалент размещения iexplore.exe в поле запуска в окнах. ShellExecute эквивалентен простому размещению url в окне запуска в окнах.

0

В качестве альтернативы, используйте Shell, например:

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

Вы также можете использовать Followhyperlink из VBA, чтобы открыть URL-адреса в браузере по умолчанию. Его также можно использовать для открытия документов с зарегистрированным приложением, для отправки электронных писем и просмотра папок.

1

Вы можете создать пакетный файл, в котором вы пишете это:

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

и настроить Outlook, правило для запуска этого пакетного файла. Заметьте^знак до &. Это escape-последовательность для & в пакетных файлах. Также обратите внимание, что в ОС Windows необходимо установить браузер по умолчанию, почти 100% вероятность того, что он у вас есть.