从Web应用程序启动Outlook并打开特定的日历条目

问题描述 投票:0回答:2

我需要在Web应用程序仪表板视图中显示下个月的用户日历条目。

我已成功使用Exchange Web服务来实现此文档:

https://msdn.microsoft.com/en-us/library/office/dn495614(v=exchg.150).aspx

此任务的最终要求是,如果用户单击该条目(在其浏览器中):

Outlook应该在他们的机器上打开并直接进入实际的日历条目。

我已经检查了约会对象,我可以看到我可以访问日历ID,我可以很容易地将其传递给服务器,但是从这里我有点困惑我如何启动他们机器上的应用程序并告诉它打开该条目ID。

这是另一个EWS电话或Office.Interop.Outlook,它甚至可能吗?

如果这使得它变得更加困难,那么这是一个.Net Core 2.0 Web应用程序。

c# outlook exchangewebservices asp.net-core-2.0
2个回答
1
投票

Outlook仍然接受命令行开关,其中一个让你打开一个Outlook项目,/select

现在,您只需创建一个URL,使用命令行参数启动Outlook。

对于IE,假设您的Web应用程序是可信的,这并不难:

javascript:(new ActiveXObject('Shell.Application')).ShellExecute('outlook.exe','/select outlook:<entryid>');

对于Chrome,您可以发送cmd文件或创建下载的帮助程序exe,但用户必须手动选择打开才能启动它。


0
投票

Active X不适用于所有现代浏览器,如chrome,IE Edge,firefox和safari。或者,您可以创建以下注册表项和锚点链接/按钮以打开Outlook日历

下面是加价

<button id="outlookCalendarBtn" onclick="window.open('outlookwebcal:')">
   Open Outlook Calendar
</button>

创建以下注册表项

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\outlookwebcal]
@="URL:Outlook Add Internet Calendar"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\outlookwebcal\shell]
@="open"

[HKEY_CLASSES_ROOT\outlookwebcal\shell\open]

[HKEY_CLASSES_ROOT\outlookwebcal\shell\open\command]
@="\"C:\\Program Files\\Microsoft Office\\root\\office16\\Outlook.exe\" /select outlook:calendar"
© www.soinside.com 2019 - 2024. All rights reserved.