@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Outlookのパスワード入力画面の入力エリアのクラス/コントロールIDの取得

1
投稿者投稿内容
ねね
会議室デビュー日: 2007/07/17
投稿数: 11
投稿日時: 2007-08-29 15:07
VB.NET2005で作成するアプリより、他アプリの入力エリアにデータをセットする
ということを行っています。

以前にも「プログラムで、別のEXEのコントロールIDもしくはコントロールのウィンドウハンドルの取得方法」
という件名で質問させていただき
GetDlgItem
FindWindowEx
を用いてデータをセットすることができました。

今回は、Outlook Expressのパスワード入力の子画面(送受信ボタンClickで呼び出される)
にユーザー名、パスワードを設定したいと考えています。

以前と同様、spy++で、各入力エリアのクラスまたはコントロールIDを取得し
APIを使用してセットしようとしたのですが、spy++で調べようとすると
ログオンというフレーム(中にサーバー、ユーザー名、パスワードが存在)
が1つの塊となってしまっています。
このような場合、どのようにユーザー名、パスワードそれぞれの入力エリアを
特定すればよいか、教えていただきたいと思います。

よろしくお願いします。

れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2007-09-01 10:24
引用:

ねねさんの書き込み (2007-08-29 15:07) より:
以前と同様、spy++で、各入力エリアのクラスまたはコントロールIDを取得し
APIを使用してセットしようとしたのですが、spy++で調べようとすると
ログオンというフレーム(中にサーバー、ユーザー名、パスワードが存在)
が1つの塊となってしまっています。



その塊が全体で一つの窓なので、そのようになります。
そのログオンという窓は、
テキストボックスを複数用いるのではなく、
テキストボックス風の枠を書く処理を行い、
キーボードからの入力を処理し、といった、
テキストボックス相当x3の機能を自分で提供しています。

引用:

このような場合、どのようにユーザー名、パスワードそれぞれの入力エリアを
特定すればよいか、教えていただきたいと思います。



ログオンという窓の入力部分はテキストボックスでないので、
テキストボックスに対する処理と同じ方法ではできません。

こういった場合はキーボード入力のメッセージを真似し、
同様のメッセージを窓に送りつけるのが普通だと思います。
具体的な方法は対象によって異なります。
OutlookExpressのログオン窓に対してはやったことがないのでわかりません。
自分で調べてください。
WM_CHARだけでうまくいく場合もあれば、
WM_KEYDOWN、WM_KEYUP、WM_COMMANDなどを組み合わせなければいけないかもしれません。

SPYにメッセージをキャプチャする機能があるので、
それをつかうといいですよ。
ねね
会議室デビュー日: 2007/07/17
投稿数: 11
投稿日時: 2007-09-03 11:48
れいさん、ありがとうございます。

@FindWindowでOutlook画面のハンドルIDを取得
AFindWindowExで枠のハンドルIDを取得
BGetClassNameでタイトル部分の情報を取得
  ☆Nameが「Static」のもの
BGetClassNameで入力部分の情報を取得
  ☆Nameが「Edit」のもの

上記のA〜Cを繰り返し行い、データセット、ボタンクリックが実現済みです。
ありがとうございました。
れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2007-09-03 20:32
引用:

ねねさんの書き込み (2007-09-03 11:48) より:
れいさん、ありがとうございます。

@FindWindowでOutlook画面のハンドルIDを取得
AFindWindowExで枠のハンドルIDを取得
BGetClassNameでタイトル部分の情報を取得
  ☆Nameが「Static」のもの
BGetClassNameで入力部分の情報を取得
  ☆Nameが「Edit」のもの



あれれ?
FindWindowでつかまるなら
ちゃんと窓ですね。
なんでSpyでできなかったんでしょう?

おかしいな。
??

まぁできたならいいか。
ねね
会議室デビュー日: 2007/07/17
投稿数: 11
投稿日時: 2007-09-05 09:49
れいさん

サーバー、ユーザー名、パスワード
のキャプション(?Static部分)と入力エリア(Edit)がセットで
1つの窓としてspy++でとれてたんです。
その中のひとつひとつ(ユーザー名の入力エリアとか)がとれなくて
困ってました。
1

スキルアップ/キャリアアップ(JOB@IT)