普通のCallで違うプロジェクトのモジュールを読み出すには?

解決


α  2001-06-12 00:40:17  No: 74489

プロジェクト、たとえばオブジェクトが A として、
違うプロジェクト、オブジェクト名が B とします。
A のCommand1をクリックしたら
B のCommand2_Clickを起こしたいという物なのですが、

>Call B.Command2_Click

としてもオブジェクトが正しくないとエラーが起きます。

ちなみにモジュールはPublicで記述もあってます。


α  2001-06-14 02:26:31  No: 74490

補足です。

>普通のCallで

やっぱり変更して、どのような手段でも良いですから
ご存じの方、ご教授お願いします。


たかみちえ  URL  2001-06-14 02:29:22  No: 74491

んー、プロジェクトを分けてみたことないからわからないんですけど…。
  別のプログラムだと思ってやってみては?
iniファイルを経由するとか、それともハンドルに直接送るとか…。


α  2001-06-14 03:34:21  No: 74492

ハンドルに直接送るとはどのような方法ですか?


たかみちえ  URL  2001-06-14 09:47:26  No: 74493

まず、何とかして相手のハンドルを得ます。
GetForeGroundWindowっていう引数なしのAPIがあるので、
それで今アクティブなウィンドウハンドルを取得できます。
それと、VB標準機能のAppActivateとかを使えば、相手のウィンドウハンドルは何とかできます。
手動でもなんとかアクティブにできればそれでいいでしょうね。
これからは、ちょっとあいまいですけど、
Sendmessageとか、アプリケーションを区別しない方法を使って、命令を送り、
(ファイルをセーブしてロードしてもらってもいい^^;)
実行してもらえばいいと思います。

  SetActiveWindowと言うAPIに、引数はあいてのハンドル。
Sendkeysでも送れます。

  けど、そんなに離れたプログラム同士じゃないし、
iniファイルを使ったりするのが、メンドウじゃなくていいかも…。


α  2001-06-15 02:19:42  No: 74494

そうですね、やっぱりiniを使った方が簡単ですね。


通りすがり  2003-05-23 02:52:44  No: 74495

それよりそのイベントの内容を関数化して双方それを読んだほうが早いと思う・・・


Say  2003-05-23 03:15:19  No: 74496

なぜ、2年前の解決済みのスレッドにレスつけたか理解に苦しみますが、
レスした内容が正しくありませんので補足します。

この元質問は

>プロジェクト、たとえばオブジェクトが A として、
>違うプロジェクト、オブジェクト名が B とします。

の記述からわかるように異なるExe間の話です。
従って、単純に共通処理を関数化すればすむ、
というわけにはいきません。
なんらかの方法でプロセス間通信する必要があります。
結論にもあるように、時間にシビアでない処理なら、
ファイル渡しはもっとも簡単な方法のひとつです。


イトウ  2003-05-25 01:15:58  No: 74497

相手のhWndをINIに書いて、それで通信するとかね〜。
しかし、二年前のを誰がみるんだろうか…


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加