2

MS Word のアドインを作成しようとしています。MS Word アドインが特定のポートでリッスンし、http 要求/応答を送受信することは可能ですか? MS Word と、Word の外部で実行されているアプリケーションとの間にファイアウォールはありますか?

4

1 に答える 1

1

Office アドインは、ファイアウォールの問題をトリガーすることなく (既定の構成で Windows ファイアウォールを使用して) HTTP 要求を作成できますが、ファイアウォールの問題をトリガーせずにリッスンすることはできません。

Word の内部から Word の外部にあるサービスにリクエストを送信している場合、そのサービスはポートでリッスンしているときにファイアウォールの問題に遭遇する可能性があります。

Windows ファイアウォールは、既定で着信要求をブロックします。Windows ファイアウォールは、Windows XP SP2 以降のすべてのバージョンに含まれています。

詳細については、MSDN を参照してください。

さらに、

Function GetRateCBR(dDate As Date) As String
Dim sUrlRequest, intTry As Integer, _
    strResponse As String
Dim oXMLHTTP As Object
Dim oResponse As Object

Set oResponse = CreateObject("MSXML2.DOMDocument")

'Build URL for request
sUrlRequest = _
    "http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=" _
    & Format(dDate, "dd.mm.yyyy") _
    & "&date_req2=" & Format(dDate, "dd.mm.yyyy") _
    & "&VAL_NM_RQ=" & "R01235"

'Try to get a response, 10 tries
intTry = 1
Do Until intTry > 10
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    oXMLHTTP.Open "GET", sUrlRequest, False
    oXMLHTTP.send
    If oXMLHTTP.Status = 200 Then
        If oResponse.loadXML(oXMLHTTP.responseText) Then _
            Exit Do
    End If
    If Not oXMLHTTP Is Nothing Then oXMLHTTP.abort: _
        Set oXMLHTTP = Nothing
    DoEvents
    intTry = intTry + 1
Loop
If Not oXMLHTTP Is Nothing Then oXMLHTTP.abort: _
    Set oXMLHTTP = Nothing
If intTry <= 10 Then
     GetRateCBR = Mid$(oResponse.Text, 3)
End If
If Not oResponse Is Nothing Then oResponse.abort: _
    Set oResponse = Nothing
End Function

アクセスブログ経由の例

于 2013-03-26T20:16:40.630 に答える