HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0130
ranran他ウィンドウのメッセージボックスのOKを押す3未解決


ranran

リンク

2016/1/30(Sat) 18:06:02|NO.74366

FindWindowでIDを取得して
メッセージを送ればできると思うのですが、どのようにやればいいか分かりません

他ウィンドウのメッセージボックスの「OK」を自動的に押すコードを組みたいと思っています
よろしくお願いします



この記事に返信する


kanamaru

リンク

2016/1/30(Sat) 23:34:25|NO.74378

詳しい方法はわかりませんが、多分findwindowで取得したハンドルでは操作できないかと。
ハンドルを取得した後、さらに子ウィンドウのハンドルを取得する必要があると思います。
どうやるのかは忘れましたが。



InoueSoftwear

リンク

2016/1/31(Sun) 13:38:41|NO.74391

FindWindowで親ウィンドウを探し、FindWindowExでダイアログを探し、
さらにFindWindowExでダイアログのOKボタンを探し、BM_CLICKメッセージをボタンに送る。
メモ帳をいじるサンプル付き。

#uselib "user32" #cfunc FindWindow "FindWindowA" str, str #cfunc FindWindowEx "FindWindowExA" int, int, str, str title "" exec "notepad Z:\\hoge" hNotepad=FindWindowEx(hNotepad,0,"Notepad","無題 - メモ帳") mes strf("Notepad\t\t0x%08X",hNotepad) //エディットのウィンドウハンドル hEdit=FindWindowEx(hNotepad,0,"Edit","") mes strf("├Edit\t\t0x%08X",hEdit) //ダイアログのウィンドウハンドル hMessageBox=FindWindow("#32770","メモ帳") mes strf("└MessageBox\t\t0x%08X",hMessageBox) //ダイアログのOKボタンのウィンドウハンドル hButton=FindWindowEx(hMessageBox,0,"Button","OK") mes strf(" └Button\t\t0x%08X",hButton) wait 50 //OKボタンを押す。(なんか2回送信しないとだめっぽい) repeat 2 sendmsg hButton,0x00F5 loop //エディットに文字を入れる sendmsg hEdit,0x000C,0,"文字文字文字\n文字文字文字" //メモ帳タイトル変更 sendmsg hNotepad,0x000C,0,"むだい - めもちょー" stop



InoueSoftwear

リンク

2016/2/1(Mon) 16:13:36|NO.74402

訂正
FindWindowで親ウィンドウを探し、FindWindowExでダイアログを探し、

FindWindowでダイアログを探し、
にする。



ONION software Copyright 1997-2023(c) All rights reserved.