Fasie7ツールバーのファイル処理コマンドのバグ
ツイートFasie7ツールバーで使用できるファイル処理コマンド(コピー、移動、削除、検索他)で、選択したファイルがちゃんと処理されない問題があるのを確認しました。
たとえば、あるフォルダでCTRL+Aで全部のファイルやフォルダを選択しても、ファイル処理コマンドはその一部しか処理しません。 選択したファイルが隠れている場合そのファイルが選択されない可能性が高いです。
原因は選択されたファイルを認識するコードで、あのやっかいなUIAutomation部分です。この部分はMicrosoftのサンプルコードを参照したもので、大した変更を行っていないのですが。
ちょっとこれは修正に時間がかかるかもしれません。
追記:どうもUIAutomationは最大33個程度のファイルしか認識できないようだ。メモリがいっぱいなのか、それともコードが悪いのか?
UIAutomationと言っても色々なアクセス方法があり、キャッシュを使ったものとFindAllで調べた限りそうなる。くそ重いTreeWalkerを使う必要があるのか、イベントを利用する必要があるのか…
追記:(11/2) Inspect ObjectツールでUIAutomationツリーを見た結果、そもそも画面から見えないファイルはUIAutomationツリーに表示されていないので、検索のしようがないことがわかりました。つまり表示が不必要なアイテム(ウィンドウから見えないファイル)はUIAutomationツリーに追加されていないからそもそも選択が無理だと言うことです。だからコード自体にはバグはありません。
なんというのか、拍子抜けというのか、トリッキーなことをやることの限界を感じずにはいられないですね。Microsoftは自分たちが想定しないOSのカスタマイズをできるだけ排除するようあらゆる手段を尽くしていますから、このような思ってもみない問題が発生するのは当然なのかもしれませんが。
この制限、問題は、いわゆる「仕様」ってやつですが、最低でもCTRL+Aが押されたら、表示フォルダ内のファイルをUIAutomationではなく、ファイルを直接操作する関数から全て拾い上げるしか対処はなさそうです。
この問題に加えて、時たまクラッシュする問題があるのですが、広告表示に行うWebアクセスに問題があるようです。これは調査中です。
Posted: 2012 年 10月 28 日, カテゴリー Fasie7.