• 締切済み

「.exe(fortranで作成したもの)を起動させて文字入力」の自動化ってできますか?

.exeを立ち上げ,ある文字を入力し,.exeを実行. ということをVBの中で自動的に処理させたいのですが… 流れとしましては,VB画面で, 実行ボタンを押す → 「.exe起動 → .exe画面に文字入力 → .exe実行」 → 終了 です.「」内は表示されず,実行ボタンをおしたら自動的に処理させたい内容です. .exeを表示させずに起動するところまではできるのですが, 次に文字入力の処理ができません... どのように記述すればいいのでしょうか? まったく分からないのでよろしくお願いします!! うまく説明できなくて意味わからなかったら,言ってください...

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.5

VB.NETなら簡単でしょう。 Processクラスを使う。 標準入力はProcess.StandardInputプロパティを経由して渡す。

すると、全ての回答が全文表示されます。
  • -boya-
  • ベストアンサー率35% (176/494)
回答No.4

No.2です。 APIを使わないなら、引数付きで.exeを実行をさせ、 .exe側で与えられた引数を入力させるように させるのは駄目ですか? .exeを改造する必要があるかと思いますが、、、

naggy_v
質問者

補足

VB.NETからfortranで作成した.exeファイル(DOSV)を起動させ、 そのDOSV画面に文字(opendialogで開いたファイル名)を自動的に入力する。 という作業をしたいのですが… 下記のようなコードを書いています。 dim datafile as string  …ファイル名 dim ret as integer ret = opendialog1.showdialog() if ret = dialogresult.OK then datafile = openfiledialog1.filename end if dim procID as integer …exeファイルのID procID = Shell("C:?*****.exe",AppWinStyle.NormalFocus) …この時点で.exeにフォーカスされている Sendkeys.send(datafile)  …起動された.exeファイルにdatafile(ファイル名)を入力させる この最後のSendkeys.send(datafile)にくると固まってしまいます。 なぜ固まるのか全然わかりませn。。。 大変困っているので、ぜひ教えてください!! よろしくお願いします。

すると、全ての回答が全文表示されます。
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

> .exeを表示させずに起動するところまではできるのですが, 画面非表示ならSendKeysは使えない。 SendMessageは使えるのかなぁ。 >.exe(fortranで作成したもの) これって、Windows GUIですか? コンソールであれば、全然別の話になります。

参考URL:
http://oshiete1.goo.ne.jp/goo_search.php3?dummy=%A5%E1%A1%BC%A5%EB&MT=&TAB=&kw=Spy%2B%2B&c=257&act.search.x=48&act.searc
naggy_v
質問者

補足

windows GUIではないです。 unix系(CUI?)です。 DOSV画面(実行時は非表示の予定)に文字入力をして、実行です。 sendmassageはwin32API関数なので、使えない…かもです。 もし、ほかの方法でご存じでしたら教えてください。 よろしくお願いします。

すると、全ての回答が全文表示されます。
  • -boya-
  • ベストアンサー率35% (176/494)
回答No.2

ざっと考えた流れでは、、、 ・exeを起動(ウィンドウのハンドルを取得) ・APIでそのウィンドウをアクティブにする ・SendKeysでタブを入力させて文字を入力するフィールドに カーソルを移動させる ・SendKeysで文字を入力する ・SendKeysでタブを入力させてフォーム内の実行ボタンに カーソルを移動させる ・SendKeysでEnterを入力させる ・APIなどでそのウィンドウを終了させる という作業で出来るかと思います。APIは説明すると長いので 参考URLの様なサイトを探してみてください。

参考URL:
http://www.galliver.co.jp/vbtips/index.html
すると、全ての回答が全文表示されます。
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.1

SendKeys ステートメントで可能です。 例えば「a」を押したことにするには SendKeys "a" と記述します。

すると、全ての回答が全文表示されます。

関連するQ&A