Как запустить URL при получении письма - PullRequest
3 голосов
/ 06 марта 2009

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

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

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

Ответы [ 5 ]

4 голосов
/ 06 марта 2009

ShellExecute - это функция в Windows 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 в окне запуска в Windows. ShellExecute является эквивалентом простого размещения URL-адреса в окне выполнения в Windows.

2 голосов
/ 09 марта 2009

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

1 голос
/ 13 ноября 2014
Shell ("CMD /C start http://www.spamcop.net"), vbNormalFocus
1 голос
/ 07 февраля 2014

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

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

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

1 голос
/ 06 марта 2009

Либо используйте Shell, например:

Sub LaunchURL(Item As Outlook.MailItem)
    Shell ("C:\Program Files\Internet Explorer\IEXPLORE.EXE" & " " & Item.Body)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...