VBで作成した複数のプログラムを次々に渡り、その間発生した計算値を
使用したいのですが…
一つのプログラムで発生したデータは、テキストファイルとして保存され
次のプログラムに処理を移してそのデータを使用する、といった操作をしたいのです
Shell関数やCommand関数を使用すればできるのでしょうか?
アドバイスお願いします

A 回答 (2件)

どもども 田吾作7です。


アプリ間の通信ですね。MSDNでATOMというのを検索してください。
複数のデータをアプリ間で受け渡すことが出来ます。
(ADDATOM,FINDATOMなどなど・・・)
それがいやならWINSOCKを使うという手もあります。
コントロールを一切使用したくないのであれば、たとえば

アプリAとアプリBにおいて
1.アプリBにコマンドボタンを一つ用意する
2.そのコマンドボタンに「受け渡し用ボタン」というキャプションにしておく。

処理の流れとしては
3.アプリAで計算を行う
4.アプリBを起動する
5.アプリBのハンドルを得る
wkWnd = FindWindow(アプリBのキャプション)
6.アプリBのコマンドボタンのハンドルを得る
'ボタンを探す
BtnHwnd = FindWindowEx( _
wkWnd , 0&, vbNullString, "受け渡し用ボタン"& vbNullChar)

7.アプリBのコマンドボタンのキャプションを変更しちゃう
call SetWindowText(BtnHwnd , "計算で得た値" & vbNullChar)

8.アプリBのボタンをボタンダウンとボタンアップをするようにする
Call SendMessage(BtnHwnd , WM_LBUTTONDOWN, 0, 0)
Call SendMessage(BtnHwnd , WM_LBUTTONUP, 0, 0)


8の処理を行うことにより、アプリBは値を渡されたことを認識できるので、アプリBのコマンドボタンのボタンアップ・もしくはダウンのイベント時に、値を受け取った時の処理のコードを書いたらいいと思いますよ。

途中に記してあるAPI関数や定数は、APIビューワで探してくださいね。
でわでわ
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます
具体例が書かれていたので、大変参考になりました
↓にも書いたとおり、API関数を使用したことがないため
そこからの学習となります
複数のプログラムを渡るものは初めてなので、解らないことだらけです
でも、そういう方法はきちんと理解しておかなくてはダメですね
頑張ってみます

お礼日時:2001/07/05 10:46

その複数あるプログラムを次々に呼び出すプログラムを作成するとわかりやすくなると思います。


Aの処理が終わればBを呼び出して、Bが終わればCを呼び出すようなプログラムです。それぞれのプログラムは保存したテキストファイルを読むだけですが、プログラム引数にファイル名を指定すると若干汎用的になりますね。
終了タイミングの検出は Win32APIを使わないとわかりづらくなるでしょう。CreateProcess や GetExitCodeProcess等を調べると良いでしょう。Win32APIは使用を誤るとシステムが落ちてしまう場合があるので注意しましょう。

 Win32APIのヘルプを持っていない場合や VBの機能だけで実行したい場合は、ファイル処理のタイミングが難しいかもしれません。Aでファイルを書き込みAを終了する前にBを呼び出して、Bも同様、という形を取るしかないでしょう。その場合はOSやシステムによっては若干の相性が出るかもしれません。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます
まずはプログラムを呼び出し渡っていくという操作から
やってみます
API関数は使用したことがないので、MSDNで検索しながら
勉強してみたいと思います

お礼日時:2001/07/05 10:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報

カテゴリ