• 締切済み

「.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

  • EXEの起動について

    プログラムの連続起動をバッチファイルで作成しています。 本体(A.EXE)を連続起動させるべくfor文でテキストファイルを読み込み引数を与えながら起動して、ということをしたいのですが、A.EXEは自動で終了するもののワケあって終了した状態を取得できません。 そこで監視(B.EXE)を実行してA.EXEの終了を待つプログラムを用意しました。 for文の中でA.EXE起動→5秒待ち→B.EXE起動(バッチは待ち状態)→A.EXE終了→B.EXE終了(バッチ待ち解除)→2回目のA.EXE起動…という流れを想定していますが、B.EXEが待ち状態にならずA.EXEが実行されてしまいます。 バッチの中身をコマンドプロンプトで実行するとB.EXEは待ち状態となるのですがバッチ実行すると待ち状態になりません。 なにが原因かわからず質問いたしました。 ご助力いただけると助かります。 以下はバッチ内容です(for文は除きます)。 ----------------- start C:\work\A.EXE timeout 5 start /w C:\work\B.EXE ----------------- よろしくお願いします。

  • Windoes7にVB6をインストールし、VB6.exeを起動すると

    Windoes7にVB6をインストールし、VB6.exeを起動すると 「システムの設定が不正なため、VisualBasicを起動できませんでした。入力が間違っているか登録されていません。VBTEMPL.TLB」 との表示が現れ実行できません。 解決方法、どなたかご存知ありませんでしょうか。

  • exeファイルを起動しようとすると様々な不具合が

    exeファイルを実行しようとすると、様々な不具合が起こってしまい困っています。 大体の流れは 1.exeファイルを実行 2.高確率で応答なし、または起動すらしない 3.応答なしになった場合タスクマネージャで終了させようとする 4.タスクバーにアイコンが表示されるだけで画面に出てこない 5.exeファイルが入ったフォルダを開いている場合、そのウィンドウも消せなくなる 6.解決策をネットで検索 7.shockwaveプラグインがビジー状態になり動作が重くなる 8.再起動を試みる 9.ログオフしています…の画面から1時間近く変わらず強制終了 といった感じです。 起動してからしばらくの間はこのような問題は起きないのですが、数時間経ってからexeファイルを実行しようとするとこのようになってしまいます。 実行させようとしているexeファイルは主にフリーゲームで、ゲーム以外にもいくつか起動しなくなるフリーソフトがありました。 また、shockwaveプラグインがビジー状態になるのはexeファイルを実行して応答なしになってからで、普段はビジー状態になることはありません。 あと、再起動ができなくなるのは変と言う事でCドライブのエラーチェックを行いましたが、特に異常は見つかりませんでした。 その他に関係ありそうな事といえば、最近Flashのバージョンを最新のものにしたことです。 自分では手がつけられなくなってきてしまったので、どなたかアドバイスをお願いします。

  • createprocessで起動させる別.exeをモーダルで起動したい

    createprocessで起動させる別.exeをモーダルで起動したい お世話になります。 VC++6.0 MFCで開発しております。 現在A.exeのあるボタンを押すとcreateprocessでB.exeを起動させるようにしております。 B.exeを起動後、A.exeの画面表示をクリックするとA.exeがアクティブになるのです。 それを、B.exeが終了しないとA.exeがアクティブにならないように変更したいのですがどのようにすればよいでしょうか? 現状は PROCESS_INFORMATION pi; STARTUPINFO si; si.cb=sizeof(si); CreateProcess(実行EXEパス,コマンドライン,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi); で起動しております。 また、実現不可能というお答えでもいいので教えていただければと思います。 お手数ですが何卒よろしくお願いします。

  • Explorer.exeが起動しなくて困ってます。

    Explorer.exeが起動しなくて困ってます。 OSはWindows7の32bitを使用していて、 Windowsは起動しているみたいで、ログインは出来ます。 「ようこそ」という文字が出た後、しばらくそのままで、 その後、黒い画面にマウスポインタだけ出てるだけの画面になります。 Ctrl+Shift+Escでタスクマネージャーも起動するので、新しいタスクの実行で今はPCの操作を行っています。 そこからExplorer.exeを起動させようとしても何も出ずに勝手に終了してしまいます。 何か解決策等ご存じの方いましたらご教授願います。。。

  • PowershellからLhaplus.exeの起動

    PowershellからLhaplus.exeの起動 PowershellからLhaplus.exeを実行するにはどうすれば良いですか? 別にLhaplus.exeに限定した話ではないのですが、何かしらの.exeを起動する方法が知りたいです。 例えば、コマンドプロンプトから cmd>regedit と打てばレジストリエディタが開きます。 同じ事をPowershellから PS>regedit と打てば、同じくレジストリエディタが開きます。 ところが、 コマンドプロンプトから cmd>"C:\Program Files\Lhaplus\Lhaplus.exe" と打てばLhaplusの画面が開くのに対し、 同じ事をPowershellから PS>"C:\Program Files\Lhaplus\Lhaplus.exe" と打てば、 次の行に入力内容が表示されるだけでLhaplusの画面は開きません。 PowershellからLhaplus.exeを実行するにはどうすれば良いですか?

  • ソースのない実行プログラムについて

    ある実行プログラム(VBで作成、exe形式、ソースなし)があります。 プログラム(.exe)を起動することで画面上に入力画面が表示されます。 いくつかの必要項目を入力し、計算ボタンを押下し計算を流すことで.xlsに結果を出力することができます。 1ジョブの計算時間に数時間かかるのと件数が多いため、仕事帰りに複数のパソコンで処理し、1台のパソコンで複数件処理できないか?その方法を検討しています。   入力画面に必要項目を自動入力でき、1つのパソコンで複数件処理できる方法はないでしょうか?

  • .exeファイルが起動できません.

    ・現象  .exeファイルを起動しようとすると,+Lhacaという圧縮解凍ソフトが起動し,起動しようとしたexeファイルのlzh圧縮したファイルをつくってしまいます.  どのexeファイルでも,同じ現象がおこります.  ダブルクリックで起動しても,スタートメニューから起動しても,ファイル名を指定して実行から起動しても,圧縮ファイルができてしまいます.  ただ,.xlsや.docのように,アプリケーションに関連付けられたファイルは開くことができます.  またエクスプローラは,左下のスタートボタンを右クリックすることで起動できます.  .exeファイルの関連付けが変更されたのでは?と考え,ここの質問を参考にし [スタート]-[ファイル名を指定し実行] から command を実行 次のコマンドを実行 C:\>assoc .exe=exefile C:\>ftype exefile="%1" %* を行ってみたのですが,状況は変わりませんでした.  エクスプローラのフォルダオプション,ファイルの種類タブから関連付けを見たのですが,exeは登録がありませんでした.  再起動もしてみたのですが,Windows起動時のスタートアップ等で,自動実行されるファイルの圧縮が行われるだけでした. なんとか元に戻したいと思いますので,何卒宜しくお願い致します.

  • ブラウザからEXEを起動するには

    VBで作成したEXEファイルをブラウザから起動したいのですが、 うまく行きません。お知恵を拝借させてください。 以下やってみたことです。 1.EXEを起動させるバッチファイルを書いてそれにリンクをする。 →起動時に確認のポップアップが出てきて鬱陶しい 2.ASPで、以下のような記述をする <% Set bobj = Server.CreateObject("basp21") rc = bobj.Execute("C:\×××\×××.exe",0,stdout) if rc = 0 then Response.write "成功" Elseif rc = -1 then Response.write "エラー" Elseif rc = -2 then Response.write "タイムアウト" End if %> →画面上は「成功」の文字が出てくるけれども、EXEは起動しませんでした。  しかし、よくよく見るとプロセスだけは立ち上がっていて。。。  どうすればきちんと起動するのでしょうか? よろしくお願いします。

  • fscommandで別起動したexeの終了を拾いたい

    初めて質問させていただきます。 Flash MX 2004を使用しています。 プロジェクタからアプリケーションを起動させる処理を作ったのですが、 この実行ファイルの終了をFlash側で拾うことはできるのでしょうか? 実行ファイルの起動部分は、下のように記述しています。 または、この実行ファイルがレジストリ更新をしているのですが、レジストリの書き込みでも判断できるか、と思っています。 レジストリの読み込み方法でも構いませんので教えていただければ。 どうか宜しくお願いします。 on (release) { fscommand("exec", "setup.exe"); }

    • ベストアンサー
    • Flash
このQ&Aのポイント
  • Windows 10 Proを使用しているHP Zbookで、ELECOM_DUAL_series_Mouse_Driverを起動してもマウスのDPIやプロファイル設定が機能しない問題が発生しています。
  • マウス速度を変更しても変わらず、Windowsのマウスカーソル加速を無効にする設定も反映されません。
  • さらに、マウスを接続するたびにWindowsのマウス設定が初期化され、毎回再設定しなければならない状況です。
回答を見る