0

Webページからの引数を使用してvbscriptを実行する必要があります。より具体的には、Sharepoint2010ページから。私がやろうとしているのは、SuperOfficeと特定のドキュメントテンプレートを開くことです。そしてそうすることで、私はまさにそれを行うためのこのコードを手に入れました。

startSOTemplate("Anbudsbrev")

Public Sub startSOTemplate(parameter)
    Dim objSO
    Set objSO = CreateObject("SuperOffice.Application")

    If not (ObjSO is nothing) then
        objSO.CurrentDocument.ChangeIdentity 0
        objSO.CurrentDocument.SetDefaults

        objSO.Context.Set "superoffice: document"
        objSO.CurrentDocument.Template = objSO.Database.GetListItemByName(130, parameter)
    End if
End Sub

今、私はこのコードを使用してこのスクリプトをWebページに追加しようとしました(リンクは後でボタンに置​​き換えられます)

<HTML>
<HEAD><TITLE>A Simple First Page</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Public Sub myVBFunction(parameter)
    Dim objSO
    Set objSO = CreateObject("SuperOffice.Application")
    If not (objSO is nothing) Then


        objSO.CurrentDocument.ChangeIdentity 0
        objSO.CurrentDocument.SetDefaults

        objSO.Context.Set "superoffice: document"

        objSO.CurrentDocument.Template = objSO.Database.GetListItemByName(130, parameter)

    end if
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>A Simple First Page</H3><HR>
<a href="#" onclick="VBscript:myVBFunction('Anbudsbrev')">link</a>
</BODY>
</HTML>

そして、何が起こるかというと、Webページに「。」というエラーが表示されますActiveX component can't create object: 'SuperOffice.Application'。dllはvbs-scriptのみを使用して機能するため、正しく登録されていることはわかっています。

だから、私の本当の質問はこれです:同じことを達成するためのより良い方法はありますか?おそらく、代わりにファイルからvbscriptを実行しますか?そして、各ボタンのリンクを使用しますか?

4

1 に答える 1

1

いくつかの潜在的な落とし穴:

  1. お使いのオペレーティング システムは 64 ビットですか? その場合は、正しいブラウザを実行していることを確認する必要があります (Internet Explorer には 32 ビットと 64 ビットの両方が付属しています)。すべての COM オブジェクトが両方で使用可能/表示されるわけではありません。

  2. SuperOffice.Applicationローカル レジストリまたはファイル システムにアクセスしますか? その場合、COM オブジェクトはサンドボックス化されています。これを回避する 1 つの方法は、HTML ページを「完全に信頼できる」アプリケーションとして実行できるようにする.hta代わりに、ファイル拡張子を使用して HTML アプリケーション内で HTML ページをホストすることです。ウィキペディアのHTML アプリケーション.htmlの定義を参照してください。

于 2012-09-06T07:16:47.630 に答える