|
検索結果を閉じるマクロですが、実はCloseGrepWndにパラメータがあって、そ
れに1を指定すれば全部まとめて閉じることができました。
loaddll "tkinfo.dll";
#n = dllfunc("CloseGrepWnd", 1);
でいけました。自分もヘルプをよく読んでませんでした。
それと、検索結果を閉じるマクロは、「検索して一覧作成」を実行している最
中だとうまく動かないです。
> 検索結果のウィンドウの数を知る方法はないのでしょうか?
検索結果ウィンドウの数を返す関数は用意してないのですが、tkinfo.dllに
WindowsのAPIをそのままバイパスする用の関数がいろいろあるので、それを組み
合わせれば一応可能ではあります。
(正直そんなマクロは僕でしか作成できないですけども)
loaddll "tkinfo.dll";
#count = 0;
#wnd = dllfunc("GrepWnd");
if( #wnd != 0 ) {
#count = 1;
while(1) {
#wnd = dllfunc("Bypass_FindWindowEx", 0, #wnd, "#32770", 0 );
if( #wnd == 0 ) {
break;
}
$title = dllfuncstr("Bypass_GetWindowText", #wnd);
if( leftstr( $title, 11) == "検索結果 - "
|| leftstr( $title, 13) == "新着リスト - " ) {
#count = #count + 1;
}
}
}
message "検索結果のウィンドウ個数 = " + str(#count);
上記のマクロだと、もしかしてウィンドウタイトルが"検索結果 - "で始まる
ダイアログボックスをほかのアプリケーションソフトが出してるとそれもカウン
トしてしまう可能性がありますが、実用上は問題ないと思います。
正確に判断させる必要があるのでしたら、別途、専用の関数を追加してもいい
です。
|
|