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

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

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

Re[2]: PostMessageでチェックボックス&ボタンを押すには?


(過去ログ 75 を表示中)

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

■43812 / inTopicNo.1)  PostMessageでチェックボックス&ボタンを押すには?
  
□投稿者/ まぐねしうむ (80回)-(2009/11/19(Thu) 14:55:58)

分類:[C#] 

PostMessageを使用してチェックボックス&ボタンを押すには?

他アプリの自動ログインのコード作成しています。
その処理の中でPostMessageを使用してチェックボックスを選択の上
OKボタンを押す処理に関しておしえてください。

EXE起動=>処理を行いたいフォームを検索は出来ています。
処理的には、フォームのハンドルを使用して、フォーム内のボタンやチェックボックスの
ハンドルを取得し、そのハンドルを使用してPostMessageを行う形になると思います。
しかし、フォーム内にあるチェックボックスとボタンのハンドルの取得方法が分かりません。

例えば、フォームのコントロールを列挙して検索で
ボタンの「OK」と言う文字列(フォーム内でユニークです。)の
ハンドルを取得する事は出来ないのでしょうか?

また、上記ウインドウハンドルが取得できたとして
PostMessageの構文は

 PostMessage(hWnd,WM_LBUTTONDOWN, 0, 0);
 PostMessage(hWnd,WM_LBUTTONUP, 0, 0);

でよいのでしょうか?

教えてください。
引用返信 編集キー/
■43819 / inTopicNo.2)  Re[1]: PostMessageでチェックボックス&ボタンを押すには?
□投稿者/ Hongliang (516回)-(2009/11/19(Thu) 15:42:33)
目的のウィンドウのハンドルを使って EnumChildWindows 関数を使ってそのウィンドウの子ウィンドウを列挙できます。一般的なチェックボックスやボタンであればこれに引っかかるので、WM_GETTEXT や GetWindowLong を使って特定することができるでしょう。
しかし例えば InternetExplorer だと、チェックボックスもボタンも、単に「それらしく描画している」だけでハンドルを持ったコントロールではありません。こういう場合はそのアプリケーション独自の対応が必要になります。
あるいは、IAccessible を使うことも考えられます。
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200805/08050033.txt

その「他アプリ」というのが自分でソースコードから変更できるなら、いっそリモート操作用の窓口を作ってしまうと言うのも手ではあります。
引用返信 編集キー/
■43821 / inTopicNo.3)  Re[2]: PostMessageでチェックボックス&ボタンを押すには?
□投稿者/ まぐねしうむ (81回)-(2009/11/19(Thu) 16:03:10)
No43819 (Hongliang さん) に返信

ご回答ありがとうございます。
> あるいは、IAccessible を使うことも考えられます。
> http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200805/08050033.txt

で記載のあった、AccExploerを使用しIAccessibleに対応していましたので
ご提示して頂いたHPを参考に調べてみます。

> その「他アプリ」というのが自分でソースコードから変更できるなら、いっそリモート操作用の窓口を作ってしまうと言うのも手ではあります。
自作では無いので裏口はつくれないです。
裏口が作れれば楽だったのですが・・・

それはともかく、ありがとうございました。!

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -