2007/10/05(金)uwscで取り扱いづらいメニュー項目
2007/10/05 10:49
おそらくは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あたりで商用ツールいらないんじゃないだろうか。いやちゃんとした商用ツール使ったこと無いんだけどさ。