この前のつづき。
Windows 7 以降で Explorer 内のリストビューを Migemo で検索しようとしたら、
見える範囲の要素しか検索対象にできない問題。
Windows 7 以降の Explorer の実装が変わったためで、Windows Automation API では、
見える範囲しか要素を取得できないようです。
対応策として、Explorer のリストビュー を Vista 同様にしてしまう方法があります。
下記、記事の koalabear さんの書き込みが参考になります。
How to get the right hand pane ( DirectUIHWND ) in Windows 7
キモは、SetFolderViewOptions を使って FVO_VISTALAYOUT を設定しているところです。
ここで、リストビューを Vista と同様にしています。
ただ微妙なのが、一度フォルダ移動しないと設定が反映されないことと、
explorer を起動するたびに設定しなきゃならないということ。
まだ試してはいないけど、根本的にレジストリを書き換えてしまうというのもあります。
use the old Vista ListView control instead of the Windows 7 ItemsView.
こっちなら、いちいち設定変更の処理を実行する必要はなくなります。
ただ、過去のリストビューを利用しつづけるというのも、うーん。
結局 Explorer だけ特殊な処理をするのなら、
独自に Explorer のファイル一覧を取得する処理を入れちゃったほうがいい気がしてきた。。
もう少し考えてみよう。
2013/10/07
|
カテゴリ:UI
|
トラックバック(0)
|
コメント(0)