• ベストアンサー

VB.NETでEXE呼び出し

こんにちわ。 いまVB.NET2003で開発している者です。 あるEXEから別のEXEをある引数を与えてShellで起動しました。 ところが正常に動作しません。 ところが呼び出されたEXEを単体で起動し、 上記の引数をコマンドラインに設定して起動したところ、 正常に動作しました。 このようなことがあり得るのでしょうか? 何か原因がありましたら教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

> 何か原因がありましたら教えてください。 これだけの情報でどうしろと… > あるEXEから別のEXEをある引数を与えてShellで起動しました。 > ところが正常に動作しません。 > ところが呼び出されたEXEを単体で起動し、 > 上記の引数をコマンドラインに設定して起動したところ、 > 正常に動作しました。 Shellで実行させようとしたプログラムは「起動」はしたんですね? とりあえず期待通りの引数が渡っているかどうか、「呼び出される側の」プログラムで 確認してみては?

tatsurou
質問者

お礼

sakusaker7さん 大変申し上げにくいのですが, 件の質問について, 「呼び出される側」のEXEのパスが別のところを見ていまして, 古いバージョンでした。 最新のEXEを呼び出すようにすると, 正常に画面が開きました。 お恥ずかしい限りです。 お騒がせして申し訳ありませんでした。

tatsurou
質問者

補足

sakusaker7さん 回答ありがとうございます。 言葉足らずのご質問で申し訳ありません。 「呼び出される側」のプログラムは起動自体はしています。 呼び出し側から「社員番号」を引数で渡して, 呼び出される側はその社員の詳細情報をフォームに表示する, というものですが, 「該当社員データがありません。」というメッセージが出て, 何も表示されません。 ところが,ブレークでとめて,Shellで渡す引数の変数の内容を コピーして,呼び出される側を単体で起動し, コマンドライン引数にペーストして,実行すると, ちゃんと該当社員の詳細情報が表示されるんです。 >とりあえず期待通りの引数が渡っているかどうか、「呼び出される側 >の」プログラムで確認してみては? →これはどのように調べるのでしょうか? ともにEXEプログラムなので, ソリューションファイルに双方取り込んで,実行しても それぞれ独立していますし… .NET初心者でして,何かと言葉足らずになっており, 申し訳ありませんが, 改めましてご回答頂きます様,よろしくお願いします。

関連するQ&A

  • VBでコマンドラインを実行したい!

    VBのソースからVBScriptを起動させたいんですが、 Shell関数ではEXEファイルしか実行できないみたいで うまくいきません。何かいい方法はないでしょうか? 実行したいコマンドラインは以下の通りです。 hoge.vbs 5 5を引数で渡したいんですがどうすればいいでしょうか? よろしくお願いします。

  • VB.NETとEXE

    VB.NETで作成したフォーム(仮にメインフォームとします)にコマンドボタンを複数貼り付けています。 各コマンドボタンをクリックすると、それぞれの別のEXEが起動します。 (例 コマンドAをクリックすると、EXE-Aが起動、コマンドBをクリックするとEXE-Bが起動。両方一度に起動も可) この時、必ずメインフォームの上にEXEのフォームが重なるように表示されています。 そこで質問があります。 1、複数EXEが起動されている時、一番前面に表示されているEXEを識別する方法はありますか? 「現在アクティブなEXE」とは異なります。なぜなら、メインフォームをクリックすると、前面に表示されているEXEはアクティブな状態とはならないためです。 2、メインのフォームの右上にある「最大化」や「最小化」のボタンをクリックしたら、それに連動してEXEも最大化や最小化をするようにすることは可能でしょうか? すこしわかりにくいと思いますが、補足もしますので、アドバイスよろしくお願いします。

  • VBのEXEから他のVBのEXEのファンクションを実行したい

    メインルーチンからサブルーチンを呼ぶような イメージで VBののEXE‥(1)(メインプログラム)から 他のVBののEXE‥(2)のファンクションを呼び出して値を返したいのですが どうすればよいでしょうか? (1)はバッチファイルのような感じで コマンドライン引数が○○のとき(2)の××と△△を実行するという内容のもの (2)はマスタを更新するプログラムがマスタごとに いくつかのファンクションにわかれたものです。 説明不足で伝わりにくいかとおもいますが、 よろしくおねがいいたします。

  • VBについて教えてください。

    1.a.exeでShell関数でb.exe起動したときにa.exeはみれなくして   b.exeで終了するとb.exeはなくなりa.exeだけにしたいのですが   どうすればよいのかおしえてください。   a.vbp   RetVal = Shell("c:\b.exe", 1)   ← b.exeの起動 b.vbp end ← 終了   b.exeが起動中はヤククにa.exeがなくなり、b.exeが終了すると   a.exeが起動するようにしたいのです   よろしくお願いします。   WINDOWS98でvb6.0で開発しています。   

  • VBからACCESSのデータを印刷するが2000とXPで・・・

    OSが2000 VB6.0のSP5 ACCESS2000 の環境で開発してVBから下記のようにShell関数 でACCESSからの印刷をしているのですが 2000では印刷できるのですが XPでVB6.0のSP5 ACCESS2000の環境でコンパイルして実行しても 「起動するためのコマンドライン引数が不正です」 とメッセージがでてしまい印刷できません。 どなたか解る方がいましたら解答お願いします。 strMSACCESS = "C:\Program Fles\Microsoft Office\Office\MSACCESS.EXE" strCommand = strMSACCESS & " " & CurDir & "\AAA.mdb /x DoPrint /cmd " & "**" Work = Shell(strCommand, vbMinimizedFocus) AAA.mdbのあるフィールドの**の値のものだけを印刷しています。 Microsoft DAO3.6 Object Libraryを指定しています

  • VB6でWSH(vbs)を起動できる方法を教えてください。

    visual Basic 6でアプリケーションを開発していますが、 このアプリケーション(exe)から、test.vbsを起動したいと考えています。 ====vbのコード===== 'ボタンクリックしたら、test.vbsが実行される Private Sub Command1_Click() shell("test.vbs") End Sub ==== test.vbs ==== MsgBox("test.vbs起動しました。") です。 上記のようにコードを書きましたが、Shell関数で 「実行時エラー'5' プロシージャの呼び出し、または引数が不正です。」 のメッセージが出力されて、vbsが起動できません。 VB6でWSH(vbs)を起動できる方法を教えてください。 環境は以下の通りです。 OS:WIN2000 アプリ:VB6 ブラウザ:IE5.0

  • 他のEXEをアクティブに

    VB.EXE1から別EXE2をshell起動しEXE2の終了でまたEXE1の 画面をアクティブにしたいのですがどうすればいいのでしょうか。 EXE2の入力途中に他画面(ExplorerとかExcelとか)を見た場合です。

  • VBを起動せずにEXEファイルを作成する方法

    表題のとおりです。 VBで作成したソースファイル等をVBを起動せずに、EXEファイルを 作成する方法を探しています。 と、言うのも、複数(VB以外も含む)のプロジェクトファイルを一度に コンパイルし、配布できる環境を作成するようにしたいのです。 要は makeファイル 等で作成出来ればと考えています。 何か、VBでEXEファイルを作成できるコマンドライン(C2.EXE等???)が あれば、お教えいただけませんでしょうか? よろしくお願い致します。

  • VBにてexeを実行させる方法

    環境OS:2000 開発ツール:VB,ACCESS,TDBGrid を用いてDBシステムを作成したのですが ・VB や その他のツールをインストールした端末にて  exe を実行できるのですが ・ツールを全くインストールしていない端末では一部  しか動作しません 開発時、[プロジェクト]-[参照設定]or[コンポーネント] の設定は変更いたしました 予想では dll,ocx ファイルが無いのが原因かなと 思っています この場合,どのようなファイルをどこに入れると、 ツールのインストールしていない端末でも動作するのでしょうか? 教えて下さい

  • VBにてEXE作成

    VBにてとあるシステムを開発しました。 SETUP.EXEを作成して遠隔地に配布したいのです。が SETUP.EXEを起動してインストールはできるのですが 印刷実行時にエラーが出てしまいます。 VBから実行は出力できます。 ディストリビューション ウィザードの使用方法が 悪いのでしょうか。 OS :Windows2000 TOOL:VB6.0 SP5,Spread3.0,ImputMan6.5J DB :ORACLE8.05

専門家に質問してみよう