teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

誤解を呼ぶ書き方を是正

2019/11/13 07:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,6 @@
1
1
  ### 解決方法
2
+ **他のプロセスに対して働きかける方法ではありません。**
3
+ 実行ファイルを自作のプログラムから参照しています。そのためElementHostインスタンスへの参照を他プロセスから取得する部分はありません。
2
4
 
3
5
  `ElementHost.Child`プロパティを利用することで実現できました。
4
6
  私の場合は以下のような流れで取得できました。

2

一応解決はしたので・・・

2019/11/13 07:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,18 @@
1
+ ### 解決方法
2
+
3
+ `ElementHost.Child`プロパティを利用することで実現できました。
4
+ 私の場合は以下のような流れで取得できました。
5
+ ```c#
6
+ // この行まででObject controlとしてElementHostのインスタンスが存在するとします。
7
+ var eh = (System.Windows.Forms.Integration.ElementHost)control;
8
+ var cc = (System.Windows.Controls.ContentControl)eh.Child;
9
+ var pa = (System.Windows.Controls.Panel)cc.Content; // Gridである場合もあるかもしれませんね。
10
+ System.Windows.Controls.UIElementCollection children = pa.Children;
11
+ // なお、確実にChildrenの第1要素がButtonである場合は以下のように取得できています。
12
+ var button = (System.Windows.Controls.Button)children[0];
13
+ ```
14
+ まんま[このページ](http://bbs.wankuma.com/index.cgi?mode=al2&namber=58626&KLOG=98)で見た書き方を利用しています。
15
+
1
16
  ### 前提・実現したいこと
2
17
 
3
18
  他プロセスのプログラムに配置された`ElementHost`に含まれるコントロールを取得したい。

1

誤解を呼ぶ書き方を是正

2019/11/13 03:05

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 他プロセスのプログラムに配置された`ElementHost`コントロールを取得したい。
3
+ 他プロセスのプログラムに配置された`ElementHost`まれるコントロールを取得したい。
4
4
 
5
5
  いま、自分が開発したC#プログラムから他社が開発したC#プログラムを自動的に操作しようとしています。
6
6
  `Text`プロパティや`Name`プロパティで得られる情報(以下情報と呼びます)を読み込めていますが、`ElementHost`なるコントロールに含まれるコントロールについては一切手出しが出せない状態です。