VBで作成した標準EXEをWEBサーバ上で実行しようと考えていまして現在苦悩しています。
BASP21を使用してEXEを実行したところ、PROCESSには起動したEXEが表示されているので実行はされてはいるのですが処理が適切になされていない状況です。
VBで作成した実行形式をASPを用いて実行する場合には、何か方法があるのでしょうか?
よろしくおねがいします。
[動作環境]
OS:Windows2000 ServerSP3
ブラウザー:IE6.0
VB6.0+SP5
実行形式の処理内容
SUB MAINを起動関数に設定し、OPEN関数でFILE書き込みを行う。
なお、このファイルはサーバー上に作成される。
No.1
- 回答日時:
処理がどう適切でないか不明なので外してるかもしれませんが、
プロセスの実効ユーザーがらみでのACLとか問題ないでしょうか?
IISで匿名アクセスだと、IUSR_*で動いて、作成されたプロセスもその権限で動くと思ったけれど。
No.2
- 回答日時:
WScript(WSH)でexeをキックする方法もありますが
結果、BASP21で、けるのと同じ結果になると思えるので
どうしてもVBでやりたいのであれば
ActiveX.dllかActiveX.exeにして
VBのコードをCom化するしか方法がないと思います。
ちなみに、私もサーバーサイドでVBを走らせるプログラムを書いたときは
COM化してやりました。
また、やろうとしている処理が
ファイルの関係の処理のようなので
スクリプトで「Scripting.FileSystemObject」というオブジェクト
をつかえば、同じような処理ができるかもしれません。
返事が送れてすみません。回答ありがとうございます。
アドバイスを頂いた通り、ActiveX.exeにしてBasp21から起動しましたが、ファイルが作成されませんでした。
ファイルを作成しようとするフォルダにはインターネットユーザーにアクセス権は与えてあります。
プロジェクトのプロパティに独立型,リモートサーバーといった設定がありましたが
設定はどのようにすればいいのでしょうか?
また、ActiveX開発について詳しくかかれている本をご存知ありませんか?
宜しくお願いします。
No.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(オーム社)です。
一度、立ち読みでもされてみては!?
あまり役に立たない情報で申し訳ない!
参考URL:http://www.shoeisha.com/book/Detail.asp?sid=8
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- サーバー ログオンユーザーがいない場合に自動再起動 1 2022/09/28 09:53
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tryの終了
-
アコーディオンメニューをアン...
-
データ未入力時のエラー処理が...
-
スレッド
-
ファイルの排他
-
ブラウザを閉じた後のサーバ側...
-
onBlurとonFocusの処理順序につ...
-
switch文の中に、throws new Ex...
-
エクセルVBAで、条件に一致する...
-
「タイプ初期化子が例外をスロ...
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
c++,ある関数のクラスから別の...
-
private static という変数の修飾
-
3年間同じクラスになる確率
-
配列の重複する値とその個数を...
-
コマンドプロンプト実行後に画...
-
変数名の付け方
-
ワイルドカード<?>と型パラメー...
-
JSPで<SELECT>の中にDBから持っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
数値の定数を付ける時
-
Javaでのデバッグコード削除
-
C#で別スレッドの終了を知りたい
-
[Java] while(true)の意味
-
Javaプログラムからポップアッ...
-
Tomcatのスレッドを破棄する方法
-
ラジオボタンの選択判定
-
JavaScriptからJAVAクラスを呼...
-
素数判定を再帰処理で
-
PHPでDB処理中にプログレスバー...
-
Javaアプリケーション実行の返...
-
WPF C#でF10のイベント取得方法...
-
doGetとdoPostの違い
-
switch文の中に、throws new Ex...
-
Tomcat高負荷時の設定について
-
ラベルの表示までが異常に遅い...
-
ExcelVBA で文字列の特定の文字...
-
JDBCでテーブルUPDATE後の再検...
-
SwingUtilities.invokeLater(ne...
おすすめ情報