1

ActiveXテクノロジを使用してWebアプリケーションからのOutlookを自動化することは標準的な方法ですか?これは、telerikのRadScheduler + telerikのExchangeプロバイダーのようなWebスケジューラーと比較して、Webアプリケーション自体からの予定をスケジュールするのですか?

ありがとう、
センディル

4

2 に答える 2

2

Web アプリケーション内で Outlook の自動化を説明するだけでなく、何を達成しようとしているのかについて詳細を提供する必要があります。私がこれを言う理由は、それはあなたが何をしようとしているのかに本当に依存するからです. 予定を作成するだけなら、activex は必要ありません。

ここで調べたり調べたりできることがあります。今すぐ Outlook にアクセスして、予定を作成します。次に、ファイル メニューに移動し、[名前を付けて保存] を実行して、予定をデスクトップに保存します。ファイルが .ics ファイルとして保存されていることがわかります。実際にこのファイルをメモ帳またはワードで開いて、その内容を表示できます。

たとえば、メモ帳での表示例は次のとおりです。

開始:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN
バージョン:2.0
方法:公開
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
開始:VEVENT
クラス:公開
作成日:20091028T125325Z
説明:テスト\n
DTEND:20091028T133000Z
DTスタンプ:20091028T125325Z
DTSTART:20091028T130000Z
最終更新日:20091028T125325Z
優先度:5
シーケンス:0
概要;LANGUAGE=en-us:test
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E008000000005062431CAC57CA01000000000000000
    0100000003E756880D89B504BBA9FF0FDC7D16F43
X-ALT-DESC;FMTTYPE=text/html:\n\n\n\n\n\n\n\n\nテスト

\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 開始:Valarm トリガー:-PT15M アクション:表示 説明:リマインダー END:ヴァルアーム END:VEVENT END:Vカレンダー

StreamWriter とメモリ ストリームにアクセスできるため、asp.net / asp を使用して予定を生成できます。これは正確には、このようなテキスト ファイルを生成できることを意味し、このようなテキスト ファイルを生成するとどうなるかを推測して、予定を作成したことになります。これは、私がカレンダー アイテム用に書いた例です。私が働いている会社の休暇/休暇申請を追跡するためのツールを作成しました。マネージャーが求めていた機能の 1 つは、従業員のリクエストをマネージャーのカレンダーに追加する方法でした。マネージャーは常に Outlook の中にいるため、Outlook カレンダーをすばやく見て、誰がオフィスにいて誰がオフィスにいないかを確認したいと考えていました。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>
于 2009-10-28T13:00:56.993 に答える
0

asp.net アプリケーションから MS Office を自動化する方法はいくつかありますが、その場合は自己責任で行ってください。私の記憶が正しければ、dcom が正しく機能するために偽装を使用する必要があり、そうすると、Web アプリケーションに大きなセキュリティ ホールが残る可能性があります。

MS は Web アプリケーション内からの Office の自動化を推奨もサポートもしていないため、Open Office XMLを使用することをお勧めします。

于 2009-10-28T13:11:21.623 に答える