سؤال

وأود أن إطلاق URL عند وصول البريد الإلكتروني في Outlook. I إعداد قاعدة، وأنها تؤدي وظيفة النصي. يبدو أريد أن أدعو ShellExecute لإطلاق URL في المتصفح، ولكن عندما ضرب هذا السطر:

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

لا يعرف طريقة. أي أفكار؟

هل كانت مفيدة؟

المحلول

وShellExecute هي وظيفة في دلل النوافذ. تحتاج إلى إضافة إعلان عن مثل هذا في وحدة نمطية 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      

والفرق بين حل شل وShellExecute هو أن ShellExecute سوف تستخدم نظام معالج الافتراضي لعناوين المواقع لفتح الارتباط. هذا لا يجب أن يكون IE. والحل فتح دائما في IE. لك هو ما يعادل وضع IEXPLORE.EXE في مربع تشغيل في ويندوز. ShellExecute ما يعادل مجرد وضع عنوان الموقع في مربع تشغيل في ويندوز.

نصائح أخرى

ويمكنك أيضا استخدام Followhyperlink من VBA لفتح الروابط في المتصفح الافتراضي. ويمكن أيضا أن تستخدم لفتح مستندات مع الطلب المسجل، لإرسال رسائل البريد الإلكتروني وتصفح المجلدات.

وبدلا من ذلك، استخدام Shell، مثل هذا:

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

ويمكنك إنشاء ملف دفعي حيث تكتب هذا:

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

وتكوين Outlook حكم لإطلاق هذا الملف الدفعي. إشعار ^ علامة قبل و. هذا هو الهروب تسلسل وفي ملفات دفعة واحدة. ولاحظ أيضا أن تحتاج إلى أن يكون المتصفح الافتراضي تعيين في نظام التشغيل ويندوز الخاص بك، ما يقرب من 100٪ احتمال أن يكون لديك ذلك.

Shell ("CMD /C start http://www.spamcop.net"), vbNormalFocus
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top