プロジェクト、たとえばオブジェクトが A として、
違うプロジェクト、オブジェクト名が B とします。
A のCommand1をクリックしたら
B のCommand2_Clickを起こしたいという物なのですが、
>Call B.Command2_Click
としてもオブジェクトが正しくないとエラーが起きます。
ちなみにモジュールはPublicで記述もあってます。
補足です。
>普通のCallで
やっぱり変更して、どのような手段でも良いですから
ご存じの方、ご教授お願いします。
んー、プロジェクトを分けてみたことないからわからないんですけど…。
別のプログラムだと思ってやってみては?
iniファイルを経由するとか、それともハンドルに直接送るとか…。
ハンドルに直接送るとはどのような方法ですか?
編集 削除まず、何とかして相手のハンドルを得ます。
GetForeGroundWindowっていう引数なしのAPIがあるので、
それで今アクティブなウィンドウハンドルを取得できます。
それと、VB標準機能のAppActivateとかを使えば、相手のウィンドウハンドルは何とかできます。
手動でもなんとかアクティブにできればそれでいいでしょうね。
これからは、ちょっとあいまいですけど、
Sendmessageとか、アプリケーションを区別しない方法を使って、命令を送り、
(ファイルをセーブしてロードしてもらってもいい^^;)
実行してもらえばいいと思います。
SetActiveWindowと言うAPIに、引数はあいてのハンドル。
Sendkeysでも送れます。
けど、そんなに離れたプログラム同士じゃないし、
iniファイルを使ったりするのが、メンドウじゃなくていいかも…。
そうですね、やっぱりiniを使った方が簡単ですね。
編集 削除それよりそのイベントの内容を関数化して双方それを読んだほうが早いと思う・・・
編集 削除なぜ、2年前の解決済みのスレッドにレスつけたか理解に苦しみますが、
レスした内容が正しくありませんので補足します。
この元質問は
>プロジェクト、たとえばオブジェクトが A として、
>違うプロジェクト、オブジェクト名が B とします。
の記述からわかるように異なるExe間の話です。
従って、単純に共通処理を関数化すればすむ、
というわけにはいきません。
なんらかの方法でプロセス間通信する必要があります。
結論にもあるように、時間にシビアでない処理なら、
ファイル渡しはもっとも簡単な方法のひとつです。
相手のhWndをINIに書いて、それで通信するとかね〜。
しかし、二年前のを誰がみるんだろうか…