2007/10/05(金)uwscで取り扱いづらいメニュー項目

2007/10/05 10:49 PC(全般)
uwscではCLKITEM(id, "ファイル\新規作成")等と書いて、アプリケーションを操作できるようになっている。しかしこのCLKITEM、アプリケーションによっては上手く動かない。

おそらくはMenuItemがOwnerDrawな奴とか、動的生成してる奴は大概ダメということのようだ。サクラエディタ、PhotoShop CS3なんかは全然ダメ。

さて、ダメなアプリではどうするかということだが、uwscに付属のChkCtlIDでチェックするというのが一手。要するにWM_COMMANDで渡っているidを調べてやることになる。上手く見つけられれば、
DEF_DLL PostMessageA(Hwnd,Long,Long,Dword):Bool:user32.DLL // PostMesssageの定義
WM_COMMAND = $111
とか定義してやって、
PostMessageA(IDTOHND(Photoshop_id), WM_COMMAND, 20)
とかで投げる。うーんここまでやるなら、なんかRubyでuwscの機構を実装した方が良くないだろうか。車輪の再開発か。

対象としているのが動的フォームなどの場合、ChkCtlIDでキャッチしづらければWinSpectorとかでWM_COMMANDを選り分ければ見つけられそうだ。

それにしても最近はいいスパイツールがフリーであるなあ。Winspector, uuspy, Windowscontrollerあたりで商用ツールいらないんじゃないだろうか。いやちゃんとした商用ツール使ったこと無いんだけどさ。
OK キャンセル 確認 その他