- ベストアンサー
VBで作成した実行形式をASPを用いて実行したい
VBで作成した標準EXEをWEBサーバ上で実行しようと考えていまして現在苦悩しています。 BASP21を使用してEXEを実行したところ、PROCESSには起動したEXEが表示されているので実行はされてはいるのですが処理が適切になされていない状況です。 VBで作成した実行形式をASPを用いて実行する場合には、何か方法があるのでしょうか? よろしくおねがいします。 [動作環境] OS:Windows2000 ServerSP3 ブラウザー:IE6.0 VB6.0+SP5 実行形式の処理内容 SUB MAINを起動関数に設定し、OPEN関数でFILE書き込みを行う。 なお、このファイルはサーバー上に作成される。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ひさびさに見たので続きがあるとは思っていませんでした(汗) >ActiveX.exeにしてBasp21から起動しましたが、 BASP21から起動するのではなく Server.CreateObject("作成したActiveX.exe;レジストリの登録名")で クリエイトする形になると思います。 で、ActiveX.exeには、処理を開始するメソッド(例としてStart():Public)と 処理を終了するメソッド(例としてEnd():Public)を作っておいて、 (ちょっとメソッドの名前が変かもしれんが・・・それはおいといて) dim objActX Set objActX = Server.CreateObject("作成したActiveXのレジストリ登録名") objActX.Start() 'この間にCOMでファイル処理が実行される objActX.End() Set objActX = Nothing とかそんな感じだと思います。 リモートサーバーファイルのチェックは今回特に必要ないと思います。 Clireg32.exeを使ってリモートコンポーネントとして 登録する場合に設定します。 VBRというファイルが生成されるようです。 私も詳しくは分かりません もし、ActiveX.dllにするなら アパートメントスレッドモデルにした方がよさげです。 書籍ですが、 私は持っていませんが確か、 翔泳社の「VBCOM」と言う書籍が 詳しかったように思います。 あと 私が所有していて結構使えたと思う書籍は 「VisualBasic6.0によるActiveXプログラミング入門」 Ohmsha(オーム社)です。 一度、立ち読みでもされてみては!? あまり役に立たない情報で申し訳ない!
その他の回答 (2)
- k_kazari
- ベストアンサー率68% (15/22)
WScript(WSH)でexeをキックする方法もありますが 結果、BASP21で、けるのと同じ結果になると思えるので どうしてもVBでやりたいのであれば ActiveX.dllかActiveX.exeにして VBのコードをCom化するしか方法がないと思います。 ちなみに、私もサーバーサイドでVBを走らせるプログラムを書いたときは COM化してやりました。 また、やろうとしている処理が ファイルの関係の処理のようなので スクリプトで「Scripting.FileSystemObject」というオブジェクト をつかえば、同じような処理ができるかもしれません。
お礼
返事が送れてすみません。回答ありがとうございます。 アドバイスを頂いた通り、ActiveX.exeにしてBasp21から起動しましたが、ファイルが作成されませんでした。 ファイルを作成しようとするフォルダにはインターネットユーザーにアクセス権は与えてあります。 プロジェクトのプロパティに独立型,リモートサーバーといった設定がありましたが 設定はどのようにすればいいのでしょうか? また、ActiveX開発について詳しくかかれている本をご存知ありませんか? 宜しくお願いします。
- osamuy
- ベストアンサー率42% (1231/2878)
処理がどう適切でないか不明なので外してるかもしれませんが、 プロセスの実効ユーザーがらみでのACLとか問題ないでしょうか? IISで匿名アクセスだと、IUSR_*で動いて、作成されたプロセスもその権限で動くと思ったけれど。
お礼
ありがとうございます。早速立ち読みします。