C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: Windowsフォームアプリのフォームのクラス名


(過去ログ 123 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■73574 / inTopicNo.1)  Windowsフォームアプリのフォームのクラス名
  
□投稿者/ bagabon (1回)-(2014/10/12(Sun) 00:01:04)

分類:[.NET 全般] 

C#で作成したWindowsフォームアプリに別のアプリからメッセージを送るために以下のようにAPIを使ってウィンドウハンドルを取得しました。

FindWindow(null, "ウィンドウキャプション")

今度はクラス名を使ってハンドルを取得しようとしました。
このフォームのクラス名はForm1ですので以下のようにしましたがハンドルの取得に失敗しました。
FindWindow("Form1", null)

SPY++で調べるとこのフォームのクラス名が以下のようになっていました。
WindowsForms10.Windows.8app.0.・・
SPY++で取得したクラス名を設定するとハンドルが取得できました。

フォームやフォーム上のコントロールのクラス名もプログラムソースとは違ったものになっていました。
SPY++で取得できるクラス名(本当のクラス名?)を開発者が設定することは可能でしょうか?





引用返信 編集キー/
■73575 / inTopicNo.2)  Re[1]: Windowsフォームアプリのフォームのクラス名
□投稿者/ tinq (22回)-(2014/10/12(Sun) 00:43:52)
No73574 (bagabon さん) に返信
ウィンドウクラス名を指定する方法はどうやら無いようです。

ほかの手段として
・タイトルにユニークな文字を含めておく
・プロセス名から探す
・NativeWindowを使ってメッセージ専用ウィンドウを作る(NativeWindowならクラス名を自由に設定可能みたいです)
・別の手段でプロセス間通信する
なんかが考えられそうです。
引用返信 編集キー/
■73575 / inTopicNo.3)  Re[1]: Windowsフォームアプリのフォームのクラス名
□投稿者/ tinq (22回)-(2014/10/12(Sun) 00:43:52)
No73574 (bagabon さん) に返信
ウィンドウクラス名を指定する方法はどうやら無いようです。

ほかの手段として
・タイトルにユニークな文字を含めておく
・プロセス名から探す
・NativeWindowを使ってメッセージ専用ウィンドウを作る(NativeWindowならクラス名を自由に設定可能みたいです)
・別の手段でプロセス間通信する
なんかが考えられそうです。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -