• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サーバ上でActiveXコントロールのオブジェクトを生成し、VBScr)

VBScriptを使用したActiveXコントロールのオブジェクト生成とメソッド呼び出しに関する問題

このQ&Aのポイント
  • サーバ上でActiveXコントロールのオブジェクトを生成し、VBScriptからメソッド呼び出しを行うためのプログラムを作成しました。
  • しかし、クライアントからページを開くと応答がなくなります。VBScriptでTest.ocxのメソッドを使用している部分を削除すると、正常にレスポンスが帰ります。
  • 設定等に問題があるのか、インスタンス生成に失敗しているように感じます。クライアントサイドでは同じことが正常に動作しています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんにちは、下記のように試してみて <script language=vbscript runat="server"> Response.Write(Request.Form(input1)) Test1.TestCall(Request.Form(input1)) </script> を <script language=vbscript runat="server"> Response.Write(Request.Form(input1)) Set activexObject = CreateObject("ActiveXオブジェクトのクラスネーム") activexObject.TestCall(Request.Form(input1)) </script> に変更する

katorea21
質問者

お礼

実はCreateObjectが必要なのかと思ってやってみたのですが、サーバーエラーで「ActiveXオブジェクトを生成できません」と言われます。そもそも、ASPページ内に<object>タグで埋め込んだコンポーネントは、そのページがロードされる時にインスタンスが生成されると理解しているのですが。 実際、クライアントサイドであれば、ただ<object>タグで埋め込むのみで、そのページを読み込んだ際にコンポーネントのコンストラクタが走っています。

その他の回答 (2)

回答No.3

サーバーエラーが出る原因はCreateObject("ActiveXオブジェクトのクラスネーム")のところに入れたクラスネームが正しくないと思います。CreateObject("ADODB.Connection")のようなクラスネームが入れると大丈夫と思います

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

うん~~~~~~~。 もう一度、ASPなどのCGIを、おさらいしてください。ディレクティブされている所が、サーバー上で実行され置き換わります。 <% %> runat="server" で、サーバー上で実行された物は、クライアントにDLされた時にはただのHTMLファイルになっています。WinsockやSoapなどで通信しない限り、サーバー上のインスタンスと交信はできません。 クライアントにActiveXをDLするようにすれば、目的を達成できます。つまり、Test.ocxをFlashのように扱うわけです。

katorea21
質問者

お礼

回答ありがとうございます。 <% %> runat="server" がサーバ上で実行されるのは理解していますが、ActiveXのオブジェクトもrunat="server"でサーバ上で生成されるので、結局サーバ上でスクリプトと通信できると思っていますが間違っているでしょうか? ActiveXはクライアントにダウンロードするのではなく、サーバ上で実行したいのです。 (サーバの他のプロセスと通信したいので) 実は、ここにあるサンプルと同様の事がしたいだけなのです。 http://www.newtone.co.jp/teechart/tc4ax/aspsample.html

関連するQ&A