これは私には信じがたいことのように聞こえますが、聞いてみたいと思いました。
ボタンを含む .NET アプリケーションが存在します。このアプリケーション ソースは編集できません。既存のアプリケーションです。
アプリケーションから、そのボタンのクリック イベントをプログラムで発生させたいと考えています。
これは可能ですか?
これは私には信じがたいことのように聞こえますが、聞いてみたいと思いました。
ボタンを含む .NET アプリケーションが存在します。このアプリケーション ソースは編集できません。既存のアプリケーションです。
アプリケーションから、そのボタンのクリック イベントをプログラムで発生させたいと考えています。
これは可能ですか?
ボタンのクリックなどのイベントを実行するには、プロセスが実行されている必要があります。その時点で、ボタン クリック イベントを発生させる方法についていくつかのオプションがあります。
1 つの方法は、2 つのプログラム間でソケットまたはパイプを使用する IPC (プロセス間通信) です。そのオプションを好む場合は、共有メモリを使用することもできます。
基本的に、リクエストを送信するためにソケットまたはパイプをリッスンするボタンをアプリケーションに持たせる必要があります。受信すると、そこから独自のボタン クリック イベントを呼び出すことができます。
重要なのは、両方のプロセスが実行されている必要があり、ボタンクリックイベントを開始するように指示する信号を他のプロセスに送信する必要があることです。
うーん多分..
むかしむかし、spy++ という名前のアプリケーションがありました。ウィンドウを調べて、プロパティ、オブジェクト名などを確認できました。
spy++ は .net に移植されました ([ここにリンクの説明を入力][1] を参照)。
[1]: http://msdn.microsoft.com/en-us/magazine/cc163617.aspx )。あなたは試してみることができます。
「その他の ControlProxy メソッド」セクションを参照すると、次のように記載されています。
「ControlProxy には、検討する価値のある追加のメソッドがいくつかあります。SendMessage メソッドを呼び出して、ウィンドウ メッセージをコントロールに送信します。これは、テスト ハーネスを作成する場合に役立ちます。たとえば、WM_CLICK または WM_KEYDOWN メッセージを送信できます。入力をシミュレートする」。
もちろん、それはエレガントでも安定したアプローチでもありません:)