プロが教える店舗&オフィスのセキュリティ対策術

VBで作成した標準EXEをWEBサーバ上で実行しようと考えていまして現在苦悩しています。

BASP21を使用してEXEを実行したところ、PROCESSには起動したEXEが表示されているので実行はされてはいるのですが処理が適切になされていない状況です。

VBで作成した実行形式をASPを用いて実行する場合には、何か方法があるのでしょうか?
よろしくおねがいします。

[動作環境]
OS:Windows2000 ServerSP3
ブラウザー:IE6.0
VB6.0+SP5
実行形式の処理内容
SUB MAINを起動関数に設定し、OPEN関数でFILE書き込みを行う。
なお、このファイルはサーバー上に作成される。

A 回答 (3件)

処理がどう適切でないか不明なので外してるかもしれませんが、


プロセスの実効ユーザーがらみでのACLとか問題ないでしょうか?
IISで匿名アクセスだと、IUSR_*で動いて、作成されたプロセスもその権限で動くと思ったけれど。
    • good
    • 0

WScript(WSH)でexeをキックする方法もありますが


結果、BASP21で、けるのと同じ結果になると思えるので

どうしてもVBでやりたいのであれば
ActiveX.dllかActiveX.exeにして
VBのコードをCom化するしか方法がないと思います。
ちなみに、私もサーバーサイドでVBを走らせるプログラムを書いたときは
COM化してやりました。

また、やろうとしている処理が
ファイルの関係の処理のようなので
スクリプトで「Scripting.FileSystemObject」というオブジェクト
をつかえば、同じような処理ができるかもしれません。
    • good
    • 0
この回答へのお礼

返事が送れてすみません。回答ありがとうございます。
アドバイスを頂いた通り、ActiveX.exeにしてBasp21から起動しましたが、ファイルが作成されませんでした。
ファイルを作成しようとするフォルダにはインターネットユーザーにアクセス権は与えてあります。
プロジェクトのプロパティに独立型,リモートサーバーといった設定がありましたが
設定はどのようにすればいいのでしょうか?
また、ActiveX開発について詳しくかかれている本をご存知ありませんか?
宜しくお願いします。

お礼日時:2002/10/02 11:34

ひさびさに見たので続きがあるとは思っていませんでした(汗)



>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(オーム社)です。
一度、立ち読みでもされてみては!?

あまり役に立たない情報で申し訳ない!

参考URL:http://www.shoeisha.com/book/Detail.asp?sid=8
    • good
    • 0
この回答へのお礼

ありがとうございます。早速立ち読みします。

お礼日時:2002/10/05 10:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!