• ベストアンサー

EXE間で同期をとりながらデーターを受け渡しする方法

mnabeの回答

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

1番簡単なやり方は、テンポラリファイルを使用するのが簡単でしょう。  例えば... 1.A.EXEから、B.EXEを起動する時の引数で、A.EXEが生成したファイルを渡してあげます(拡張子を適当な物にして) 2.B.EXEが動作している最中は、このファイルをそのままにしておきます。それにより、A.EXEは、引数で渡したファイルが存在している最中は、B.EXEが起動しているので、処理を停止しています(タイマかなんかで調べる)。 3.B.EXEが動作終了したら、引数で渡されたファイルで拡張子を変えた物を作成して、その中に結果を入れる 4.B.EXEは結果を書込んだら、引数で渡されたファイルを削除する 5.A.EXEは、ファイルがなくなった事で、B.EXEが終了した事を認識するので、同ファイルの拡張子が違う物を読込んで結果処理を行う。  ってので実現出来ると思います。2番の所で、プロセスハンドルを調べるをつけ足すと、もっと処理が正確になりますね。特にB.EXEが途中で強制終了した場合には、有効な手段だと思われます。

boo4913
質問者

お礼

アドバイスありがとうございました。 EXE同士で同期をとったりデーターの受け渡しをするのに、 ファイルを経由するなんてやり方があったんですね。 思いつきもしなかったので、とても参考になりました。 他の回答も参考にして作成してみたいと思います。 ありがとうございました。

関連するQ&A

  • データの受け渡しについて

    現在、出席票のプログラムを作っていて出てきた質問です。ただし私がJAVA初心者なため、質問もとても初歩的な部分だとは思いますが、どうぞよろしくお願いいたします。 このプログラムは2つのファイルから成り立たせたいと考えています。1つ(以下:DBTest_a)ではJAppletによってパスワードを入力する。もう2つ(以下:DBTest_b)ではDBTest_aで得たパスワードを受け取り、データベースに接続して各処理を行う(この処理内容もパスワードを表示させたウインドーで表示させたい)。というものです。 受け取るには、DBTest_aをメインにして、 str にパスワードを保持して、DBTest_bをDBTest_a内で呼び出して受け渡そうと考えました。 そのためのパスワードを入力して保持するプログラムと、データベースに接続するプログラムを別々に作成して、個別には実行できるようにはなりました。しかし、DBTest_bへのデータの受け渡しがうまく行かないままです。 現在のDBTest_bでは" JOptionPane.showInputDialog "を使って、パスワードを簡単に入力ができるようにしています。このプログラムの目的が、【キーボードからパスワードを入力して、データベースに接続】ならこれでもいいのですが、この先このプログラムを拡張する(「出席」「欠席」ボタンを押して出席率を変化せせるなどのイベントをつける予定です)ときに" JOptionPane.showInputDialog "だと都合が悪いと思い" JOptionPane.showInputDialog "を用いる必要があるなと感じました。上記で説明したデータの受け渡しがうまくいけば、拡張もできるのではないかと考えています。 長々と私の考えを載せてしまいましたが、重要な質問は【2つのプログラム間でのデータの受け渡し方法】です。

    • ベストアンサー
    • Java
  • 違うファイルのデータの受け渡しについて

    マイコンでCを使っています。 例えば a() interrupt b() と言う関数を作ったとします。 今までは同じファイルにa() b()も入れて作っていたため、グローバル変数で宣言すればデータの受け渡しが簡単だったので、そっちを使っていたんですが、 違うファイルに割り込みを作る場合にはどのようにしてデータの受け渡しをすればいいのでしょうか? 割込みなのでb(int data)のような受け渡しも出来ませんよね。 かといってファイルが違うとグローバル宣言したところで、もう一方のファイルでは宣言されていませんと出ました。 今のままですと、a() b()は同じファイルに入れる事しか解決できなさそうなのですが、多分何か方法があると思い質問しました。 よろしくお願いします。

  • データの受け渡し

    A.aspのデータを B.aspに受け渡すのはどうしたら良いのでしょう教えて下さい。 TEXTBOXからのデータの受け渡しではないです。

  • 非同期プログラミングは必ずマルチスレッド?

    非同期プログラミングは必ずマルチスレッドプログラミングになりますか? ここでいう非同期プログラミングとは、 何かのメソッドを実行してその処理(処理Aとする)の結果を待たずに次の処理Bを実行できて、処理Aが終わったらコールバックやデリゲートで、あらかじめ決められたメソッド(finishとする)が呼ばれるといったものです。 処理Aを実行するメソッドを呼ぶ ↓ すぐに処理Bを実行開始(このときバックグラウンドで処理Aが走っている) ↓ 処理Aが終了したのでfinishメソッドが実行される 例えば、Objective-CのNSURLConnectionで非同期通信するときのようなやつです。 こういった非同期プログラミングは、必ずマルチスレッドを使うことになりますか? 普通、別スレッドで処理させるときはスレッド用のライブラリを使うなどして明示的にマルチスレッドプログラミングをしますが、上のように非同期のメソッドを使うと、その裏で自動的に別のスレッドが動くのでしょうか。 それとも、単一スレッドのみで、非同期プログラミングできるでしょうか。 なお、特殊な言語やOSによっては、いくらでも可能性があると思いますので、 メジャーな環境(Windowsや、スマホ) のみに限定してお願いします。言語で言うと、C、C++、Objective-C、Javaあたり。 また、上の「処理A」が終わったとき、メソッド「finish」が呼ばれるとすると、 処理Bの実行中にどのようなタイミングでfinishが呼ばれるのでしょうか。 処理Bはどのような形でfinishに切り替わるのでしょうか。いきなりfinishに処理を奪い取られるのでしょうか

  • 外部exeに対しての引数受け渡し

    お世話になります。 2点ほどVB.netのコーディングに関して質問があります。 環境:VB2008 DB:SQLSEVER A = アプリケーション1 B = アプリケーション2 複数の引数 = DB検索情報(key,テーブル名)&ヒットしたファイルが格納されているルートディレクトリ ●実装したい機能 Aから外部のB(exe)を呼び出し、Aから受け取った複数の引数を元にDBを検索しファイル名をヒットさせ、そのファイルを開く。 質問(1) Aから外部のB(exe)を呼び出すときにAで取得した複数の引数をBに渡す方法はどうするのでしょうか? 質問(2) 受け取った引数を元にDBを検索し、ヒットしたファイルを開きたいのですが、その複数の引数を格納する構文はどういったものになるのでしょうか? ネットで調べはしましたが、いまいちピンとくるものがなく質問した次第です。 最近VBを始めたもので、質問をする上で情報が欠如しているかもしれませんが、ご回答頂けると幸いです。 よろしくお願いします。

  • データの受け渡しのベスト方法は?

    ウインドウーズからマックへデータを受け渡しする場合、どういう方法が、確実でしょうか? 具体的には、エクセルデータを、受け渡ししたいのですが。メールでは問題があるといわれました。CDでもオーケーでしょうか。 確実な方法を教えてくだされば。

  • 非同期で受信するデータを、全てファイルに書き込むには?(VB6.0です)

    お世話になります。 開発環境は、WindowsXP, VB6.0 になります。 A: 今回の開発アプリ B: Aが取り込んでいるDLL として、質問させて頂きます。 Aは、Bが送ってくるデータを非同期で受け取り 加工して、1つのファイルに追加モードで落とし込みます。 非同期でデータを受け取るため、加工途中で 更に新たなデータが届いた場合、どのように同期を取れば宜しいでしょうか。 データの受け取りは非同期、書き込み処理(&加工処理)は同期させたいのです。 データを受け取る周期は約0.5秒、1回につき書き込む量は多いため 悩んでおります。 何かアドバイスを下さる方がいらっしゃいましたら、ご教示下さい。 宜しく御願い致します。

  • VBからACCESSへのデータの受け渡し

    VBで処理した結果のデータを、他の起動中のACCESSのテキストボックスに表示させることはできるのでしょうか? 初心者で間の抜けた質問かもしれませんが、よろしくお願いします。

  • exe まとめる

    複数あるexeファイルをまとめるということはできるのでしょうか? そのようなものを作ってみたいと思っているのですが 例えば A,B,C,Dというexeファイルがあるとします Aというexeを起動させると B,C,Dのどれを起動させるか選ぶ画面が出てB,C,Dのどれかを選ぶと対応したexeが起動するといったものを作りたいと思っています。 Aをダブルクリック→B,C,D選択画面→Bを選択→Bのexeを起動 といった感じです。 ここでいうAというexeを作成してみたいのです。 わかりにくくてすみません。 プログラミングに関してはほとんど初心者どうぜんでjavaを少々やっているだけです。 できるようなら色々試行錯誤してやってみたいと思うのですが、参考になるページなどあるでしょうか? 詳しい方よろしくお願いします。

  • EXE間でデータを受け渡し時のkarnell32エラー

    VB6.0を使って、OSはMe、98でプログラミングをしています。API関数(OpenProcess,GetProcess,CloseHandle)を使って処理をしているのですが、実行していると頻繁に「~.exeによりkarnell32.dllに不正な処理が発生しました。問題が解決しなければコンピュータを再起動してください」というようなメッセージが出てしまいます。リソースが足りない時に出ているようでもあるのですが、原因が良くわかりません。どなたか同じような症状がでて「治したぞ!!」という方がいたらよろしくお願いします。