Вам нужно будет предоставить более подробную информацию о том, что вы пытаетесь выполнить, а не просто указать автоматизацию внешнего вида в веб-приложении. Причина, по которой я это говорю, заключается в том, что это действительно зависит от того, что вы пытаетесь сделать. Если все, что вы пытаетесь сделать, это создать встречу, то нет, вам не нужно ActiveX.
Это то, что вы можете исследовать или изучить. Зайдите в мировоззрение прямо сейчас, назначьте встречу. Затем перейдите в меню «Файл», выполните «Сохранить как» и сохраните встречу на рабочем столе. Вы заметите, что файл хранится как файл .ics. Вы можете открыть этот файл в блокноте или в слове и просмотреть его содержимое.
Например, вот пример того, как это выглядит в блокноте:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20091028T125325Z
DESCRIPTION:test\n
DTEND:20091028T133000Z
DTSTAMP:20091028T125325Z
DTSTART:20091028T130000Z
LAST-MODIFIED:20091028T125325Z
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:test
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E008000000005062431CAC57CA01000000000000000
0100000003E756880D89B504BBA9FF0FDC7D16F43
X-ALT-DESC;FMTTYPE=text/html:\n\n\n\n\n\n\n\n\ntest</P>\n\n\n
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-ALLOWEXTERNCHECK:TRUE
X-MS-OLK-CONFTYPE:0
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
Итак, подумайте об этом, вы можете использовать asp.net / asp для создания встречи, потому что у вас есть доступ к StreamWriter и потоку памяти. Что именно это означает, это означает, что вы можете сгенерировать текстовый файл, подобный этому, и угадать, что, если вы сгенерируете текстовый файл, подобный этому, вы просто создали встречу. Вот пример, который я написал для элемента календаря. Я написал инструмент для отслеживания запросов на отпуск / нерабочее время для компании, в которой я работаю. Одной из функций, которые хотели менеджеры, был способ добавить запрос сотрудника в календарь менеджера. Из-за того, что менеджеры всегда были в поле зрения, они хотели быстро взглянуть на свой календарь событий и посмотреть, кто был в офисе, а кто нет. Конечно, они могли вручную создать элемент календаря Outlook, но слишком много ручной работы не было идеальным.
Поэтому я использовал StreamWriter и поток памяти для создания элемента календаря Outlook.
Вот пример:
<%@ Page Language="vb" ContentType="text/html" ResponseEncoding="iso-8859-1" Debug="True" trace="False"%>
<%@ import Namespace="System.IO" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title></head>
<body>
<script runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
'PARAMETERS
Dim beginDate as Date
Dim endDate as Date
Dim VType as String = Request.QueryString("vtype")
Dim h As Double = Request.QueryString("hours")
If h = 8 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 4:00 PM"
ElseIf h = 4 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 12:00 PM"
ElseIf h = 1 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 8:00 AM"
ElseIf h = 2 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 9:00 AM"
ElseIf h = 3 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 10:00 AM"
ElseIf h = 5 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 12:00 PM"
ElseIf h = 6 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 1:00 PM"
ElseIf h = 7 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 2:00 PM"
ElseIf h = 9 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 5:00 PM"
ElseIf h = 10 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 6:00 PM"
ElseIf h = 11 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 7:00 PM"
ElseIf h = 12 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 8:00 PM"
ElseIf h = 13 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 9:00 PM"
ElseIf h = 14 Then
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 10:00 PM"
Else
beginDate = Request.QueryString("vdate") & " 7:00 AM"
endDate = Request.QueryString("vdate") & " 12:00 AM"
End If
Dim myLocation as String = Request.QueryString("location")
Dim mySubject as String = Request.QueryString("subject")
Dim myDescription as String = Request.QueryString("Description")
'INITIALIZATION
Dim mStream As new MemoryStream()
Dim writer As new StreamWriter(mStream)
writer.AutoFlush = true
'HEADER
writer.WriteLine("BEGIN:VCALENDAR")
writer.WriteLine("PRODID:-//Flo Inc.//FloSoft//EN")
writer.WriteLine("BEGIN:VEVENT")
'BODY
writer.WriteLine("DTSTART:" & beginDate.ToUniversalTime.ToString("yyyyMMdd\THHmmss\Z") )
writer.WriteLine("DTEND:" & endDate.ToUniversalTime.ToString("yyyyMMdd\THHmmss\Z") )
writer.WriteLine("LOCATION:" & myLocation)
writer.WriteLine("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" & myDescription)
writer.WriteLine("SUMMARY:" & mySubject)
writer.WriteLine("X-MICROSOFT-CDO-BUSYSTATUS:FREE")
'FOOTER
writer.WriteLine("PRIORITY:5")
writer.WriteLine("END:VEVENT")
writer.WriteLine("END:VCALENDAR")
'MAKE IT DOWNLOADABLE
Response.Clear() 'clears the current output content from the buffer
Response.AppendHeader("Content-Disposition", "attachment; filename=Add2Calendar.vcs")
Response.AppendHeader("Content-Length", mStream.Length.ToString())
Response.ContentType = "application/download"
Response.BinaryWrite(mStream.ToArray())
Response.End()
End Sub
</script>
</body>
</html>