サーバー上のEXEファイルをクライアントで起動するには?

解決


モユモユ  2005-11-09 01:24:51  No: 92529

VB6で開発しているのですが、
サーバー上にあるexeファイルをクライアント側で起動をかけて、
サーバー上で実行したいのですが何か良い方法はありませんか?
shell関数を使うとexeファイルがクライアント側で実行されてしまいます。
どこか参考になるサイトのURLを紹介して頂けるとありがたいです。
宜しくお願いします。


そうゆうのって  2005-11-09 01:51:00  No: 92530

>サーバー上で実行したいのですが何か良い方法はありませんか?

よく、Webブラウザなどから、きどうさせるよね


我龍院忠太  2005-11-09 03:13:27  No: 92531

仕掛けなしでいきなりサーバーのexeファイルの起動は出来ないよね。
簡単なのはWinsockを使った通信かな。


ひろ  2005-11-09 04:20:59  No: 92532

とりあえず思いつく方法4つ

・CreateObjectの2つ目の引数を指定

・WebサーバからCGI起動

・Winsockで通信

・RDBMSを用意して、クライアントからDBにリクエストを書き込む。
  サーバ側ではDBに書かれたリクエストを見つけるとリクエスト内容に応じたexeが走る

やったことがないパターンの方が多いですが・・・


ガッ  2005-11-09 05:08:57  No: 92533

インターネットワークの技術を使わないのなら
・人づてによる起動
・お願いの電話による起動
・郵便による起動
など、人的技術で解決できると思います。

…ネット使うと例外やセキュリティに対処するのが…(ぇ


コボル  2005-11-09 07:07:07  No: 92534

ターミナルサービスを使うとか。


シロクロ  2005-11-09 18:06:36  No: 92535

私も一度思案したことがあります。

 ①サーバ側ではEXEを実行状態にしておく。
 ②サーバ側で実行したEXEは常にデータベースを検索する
   ループ処理が入っている。
 ③クライアント側でサーバ側のEXEに処理をしてほしいという
   情報をDBに書き込む
 ④サーバ側のループが処理起動を読み取り実行する。
   その際、処理中を示す情報をDBに書き込む。
 ⑤クライアント側は、処理中の情報がなくなるまで待つ。
 
というものでした。


モユモユ  2005-11-09 18:42:41  No: 92536

様々な貴重な意見をどうもありがとうございます。

クライアントのGUIがACCESSで作成されている為、
出来ればVBでプログラミングしたいのですが...。

LANなのでセキュリティはあまり気にしていません。
(ガッ様の言われる例外エラーが少し気にかかりますが)

当初、シンクロ様が思案したのと似たような形で処理を
実行していたのですが、サーバーのCPUに常に高い負荷が
かかる為、断念しました。
※私の力不足でCPUに負荷がかかっていたのかもしれません。

我龍院忠太様とひろ様の
・CreateObjectの2つ目の引数を指定
・Winsockで通信
を検討してみたいと思います。

Winsockについて参考になるサイトがあれば教えて頂けないでしょうか?


モユモユ  2005-11-09 18:47:02  No: 92537

シロクロ様のお名前がシンクロ様になっていました。
失礼しました。すいません。


我龍院忠太  2005-11-09 19:40:15  No: 92538

Winsockによるソケット通信は極めて簡単。
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/Socket/
サーバー側はListen状態にしておき、送られて来たデーターを見て
exeファイルをキックするだけ、Listen状態でのCPUに対する負荷も
殆ど有りません。


あん  2005-11-09 19:56:38  No: 92539

セキュリティ上問題なければ
1  VBでActiveX.dll作成
1.1  クラス追加
1.2  クラスにサーバ上のプログラムを起動する処理を記述
2  1で作成したActiveX.dllをCOM+に登録
3  プロキシ作成(***.msi)
4  3で作成したプロキシをクライアントにインストール
5  クライアントでCreateObject実行
例  set obj = CreateObject("Project.Class1")
    Call obj.Start()
もう古臭い方法ですが
Windows DNA とか言われてた時、はやった方法です。


我龍院忠太  2005-11-09 20:10:32  No: 92540

書き忘れましたが、Winsockによるタスクスイッチャーは
ローカルコンピューターでホスト側のexeファイルを起動
するのでは無く、あくまでも起動はホストコンピューター
によるもので、ローカルコンピューターはソケット
通信により、ホスト側に起動の指示を出すだけです。
従ってセキュリティーのリスクはソケット通信のリスクと
指示を埋め込む通信データーのプロトコルを解読される
リスクになります。
特定以外のコンピュータからの操作を排除したい場合は、
プロトコルを複雑にして(暗号化)などして、解読を
出来ないようするか、ローカルコンピューターが特定
されている場合は、ポーリングなどで、ホスト側から
ローカルマシンに接続を試みます。


モユモユ  2005-11-09 20:54:28  No: 92541

我龍院忠太様、あん様  
ご教授どうもありがとうございます。
早速試して見たいと思います。


モユモユ  2005-11-09 23:10:28  No: 92542

我龍院忠太様に紹介して頂いたサイトを参考にして
Winsockでの通信を試してみたところ、うまくいきました。
あん様のCreateObjectを指定する方法はプロキシをたてる
事が社内で禁止されている為、断念しました。

ご意見を下さった皆様、どうもありがとうございました。


あん  2005-11-09 23:45:45  No: 92543

>あん様のCreateObjectを指定する方法はプロキシをたてる
プロキシサーバーのことじゃないからね  念のため。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加