喫茶XRAYトップページ
[
スレッド全体
]
[1841]
他のアプリのボタン押下を取得
返信
削除
2008/8/25 (月) 11:53:27
satot
市販のアプリの特定のボタンを、ユーザーが押したタイミングで、その
アプリの特定のEditBoxにある文字列を、Delphi側で取得したいのですが、
可能でしょうか。ボタンを押す方法は、拝見いたしたのですが......
よろしくお願いします。
[1842]
他のアプリのエディットの値を取得
返信
削除
2008/8/25 (月) 22:21:13
Mr.XRAY
▼ satotさん
> アプリの特定のEditBoxにある文字列を、Delphi側で取得したいのですが、
他のアプリの場合,全てのコントロールの値が簡単に取得できるわけでは
ありませんが,satotさんのいうEditBoxが,ウィンドウズのエディットコン
トロール(テキストボックス)であれば比較的簡単に取得可能です.
そのためには,そのコントロールのハンドル値を取得しなければなりません.
例えば
670_他アプリへ文字列送信と取得670_SendTextThreadAttach)
http://
homepage
2.
nifty.
com/
Mr_XRAY/
Delphi/
plSample
s/
670_Send
TextThre
adAttach
.
htm
のリスト1の
Button2Click
Button3Click
Button4Click
では,
RevHandle:=Self.GetFocusWindow(hWindow);
で,フォーカスのあるコントロールのハンドルを取得しています.
(ん? なんでSelfがついているんだ?)
そのハンドルをRevHandleとすれば,すぐ下のコードのように,
文字列を取得するメッセージを送り,取得できます.
問題は,RevHandleに相当する対象コントロールのハンドル値をどう
やって取得するかです.メモ帳などであればアドバイスできますが,
対象のアプリの仕様にもよりますので,具体的な方法のアドバイス
はちょっと無理です.
[1843]
Re:他のアプリのボタン押下を取得
返信
削除
2008/8/25 (月) 23:31:19
Mr.XRAY
▼ satotさん
失礼!!
他のアブリのボタンクリックを取得でしたね.
いくつか考え方がありますが,
さて,どうしましょう.少し待ってください.
(1) マウス左ボタンのUPをフック
(2) 対象コントロールのWindowProcをサブクラス化
さて...,(1)の方がいいかな〜.
[1844]
Re2:他のアプリのボタン押下を取得
返信
削除
2008/8/25 (月) 23:49:21
Mr.XRAY
▼ satotさん
> さて...,(1)の方がいいかな〜.
(1) なら
http://
homepage
2.
nifty.
com/
Mr_XRAY/
Delphi/
plSample
s/
260_Hook
KeyMouse
Event.
htm
(2) なら
http://
homepage
2.
nifty.
com/
Mr_XRAY/
Delphi/
plSetPri
nter/
OthesDia
log.
htm#
03
を元に考えていくことになると思います.
ただし,(2)の場合,他のアプリですので,SetWindowLong関数を使用
することになります(第2引数にGWL_WNDPROCを指定).
いずれにしても,対象コントロールのハンドル値を何らかの方法で
取得する必要はあります.
[1845]
Re3:他のアプリのボタン押下を取得
返信
削除
2008/8/26 (火) 10:31:07
satot
▼ Mr.XRAYさん
深夜に、大変ご丁寧なご指導ありがとうございます。感謝感謝です。
少々ハードルの高いところもありますが、老化防止のため、
頑張ってみようと思います。
念のため、用途を書きますと、
病院の受付機ですが、受付のボタンを押した後、再度本日の診療予定
印刷の操作が必要で、これを一回の受付ボタンクリックで印刷まで済ましたいと
いう目的です。
(けして、「送信ボタン」が押された時に、入力されたパスワードを
読みとるという目的ではありません!)ご安心ください。
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82