IamWsk Ответов: 3

Как просто открыть пользовательский календарь windows outlook одним нажатием кнопки my ASP.NET веб-приложение.


Как просто открыть пользовательский календарь windows outlook одним нажатием кнопки my Asp.net веб-приложение.

Что я уже пробовал:

Я попробовал использовать interop, но ничего не получил.

3 Ответов

Рейтинг:
25

Afzaal Ahmad Zeeshan

Вам нужно запустить протокол в виде гиперссылки на веб-странице, а затем Календарь Outlook (если он доступен на компьютере пользователя) запустится по умолчанию, чтобы взять под контроль запрос на обработку данных. Схема URI по умолчанию для календаря Outlook выглядит следующим образом, outlookcal:, поэтому вам нужно написать следующий код в кнопке.

window.open("outlookcal:");

Ваш HTML-контент, точно будет,
<button id="outlookCalendarBtn" onclick="window.open('outlookcal:')">
   Open Outlook Calendar
</button>

Этот код требует установки календаря Outlook. Если Outlook не установлен — или какое-то другое приложение управляет этим URI-схемы являются обработчиком по умолчанию, результаты не определены и не уверены. Поэтому примите надлежащие контрмеры и для этих сценариев.

Javascript - откройте заданный URL-адрес в новой вкладке, нажав кнопку - переполнение стека[^]


Thomas Daniels

+5!

Afzaal Ahmad Zeeshan

Спасибо!

IamWsk

Спасибо @Afzaal, но он открывает календарь windows, а не Календарь outlook. Как я могу изменить свой обработчик по умолчанию для него?

Afzaal Ahmad Zeeshan

Вам нужно будет проверить наличие этих параметров в настройках (Windows 10) или в реестре (все выпуски и версии Windows). Там вы сможете это изменить.

Как я уже упоминал, это все зависит от пользователя, чтобы управлять тем, какое приложение он хочет открыть для этой операции. Иногда другие приложения также сами переопределяют этот параметр. Можно также столкнуться с множеством других определенных проблем, и веб-приложение ничего не может сделать для этого.

IamWsk

Да, я проверил с помощью своих настроек windows 10 только календарь windows доступен для выбора приложения по умолчанию для OUTLOOKCAL: protocol. существует ли какой-либо другой подход к изменению настроек или Открытию календаря outlook?

Afzaal Ahmad Zeeshan

Действительно, и это потребовало бы от вас и ваших пользователей внести изменения, и мы ничего не можем сделать из веб-приложения. К сожалению, именно так создаются веб-стандарты. :-)

IamWsk

Пользователи моего приложения изменят этот параметр, но Календарь outlook не отображается в списке, когда они пытаются изменить параметр протокола.

Karthik_Mahalingam

5

Afzaal Ahmad Zeeshan

Спасибо, Картик.

Рейтинг:
1

Rajesh Kumar Bhawsar

Полностью согласен с решением 2, но в моем случае оно не сработало.

Поэтому я создал свою собственную пользовательскую схему uri, создав нижеприведенную запись реестра

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"


Рейтинг:
1

virusstorm

Взгляните на эту нить: windows - запуск приложения из браузера - переполнение стека[^]

Веб-браузер не может запустить другое приложение без какого-либо расширения или плагина. Это делается по соображениям безопасности. Подумайте о том, сколько вирусов, вредоносных программ или разрушительных действий может произойти, если браузеры запустят неизвестные приложения.

Если Outlook установлен на их компьютере, вы можете загрузить файл календаря, который откроет событие в их календаре Outlook и позволит им сохранить его.
Разница между iCalendar (.ics) и vCalendar (.vcs) - переполнение стека[^]


Afzaal Ahmad Zeeshan

С другой стороны, вы можете использовать схему Uri календаря Outlook и динамически запускать его через JavaScript.

Пожалуйста, смотрите решение 2 для получения дополнительной информации об этом.