2002年05月31日

2002/05/31 ロシアからのメール

相変わらず多いKlezですが、何故かロシアのアドレスから来ました。
件名もロシア語で何がなにやらさっぱり(w
やはりKlezに感染している日本人がロシアのサイトを見に行って、そのキャッシュにあるアドレスからといったパターンですかね。


そうするとそのうちベルギーのアドレスからも来たりして
チュニジアは…多分無い(w(←偏見)
posted by T.M at 00:00| Comment(0) | TrackBack(0) | 雑記 | このブログの読者になる | 更新情報をチェックする

2002年05月27日

2002/05/27

整形するだけでもしんど…
ヘルプはいつになるやら(w
posted by T.M at 00:00| Comment(0) | TrackBack(0) | 雑記 | このブログの読者になる | 更新情報をチェックする

2002年05月26日

フィルタ

フィルタ実装まで

ファイラーに必ずと言って良いほど付いている機能としてフィルタ機能があります。
どんな機能かというのは使ってもらうのが1番早いと思いますが、表示するファイルを制限したり表示しないファイルを指定したりするものです。

エクスプローラやTabFolderにもある属性による表示制限もその一種です。
ですが普通ファイラーのフィルタ機能といえば、拡張子やファイル名での表示制限などのことを指します。

TabFolderもそれほど多機能ではないものの、一応フィルタ機能はあります。
ただし最初に実装された時は、エディットコントロール1個のダイアログで手入力のみで履歴も無しというものでした。
後からUIなどは変更するつもりでしたが、ワイルドカードが使用可能で複数指定もできるという内部仕様はこの時点でできていました。

特に優れているわけではないですが、ファイラーとしては十分だと思います。
あくまで内部仕様に関してはですが…
とりあえず使えない事はないのと他に優先してやるものもあったのでしばらくこのままでした。

Versioin 0.9.7.0で履歴が保存可能になり、Versioin 0.9.8.0ではメインウィンドウに切り替え用のウィンドウが追加され、やっとまともに使えるようになりました(w

なぜ|か?

工夫したところとかは特に無いのですが(w、他とちょっと違う所は複数指定の時の区切り文字として"|"を使用していることでしょうか。
他のソフトでは";"や","を使用しているものもありますが、これらの文字はを区切り文字として使用するのはあまり適当出はないと思います。
(ファイルのフィルタ機能で使用する場合でのことですが)

なぜなら";"も","もファイル名に使用できる文字だからです。
あれ?と思う人もいるかもしれませんが使用できてしまいます。

ファイル名に使用できない文字を含んだファイル名にしようとすると、エクスプローラはエラーダイアログを表示して変更させません。
その時表示されるダイアログに使用できない文字が列挙されています。
(ちなみにTabFolderでは何も言わずに元のファイル名に戻して決定します(w)
rnmerr.gif
画像を見れば分る通り";"も","もしっかりあるわけですが、なぜか実際にこの2つの文字を使用したファイル名にしようとしてもエラーも出ずに普通に変更できてしまいます。

使用できない環境もあるのかもしれませんが、使用できる環境があるのは事実です。
ファイル名に使用するのは好ましいとは言えませんが、ファイル名に使用できる文字をフィルタの区切り文字と使用するのもあまり適当ではないと思います。

そういう事でTabFolderでは区切り文字として"|"を使用しています。
"/"も分かりやすい気もしますが、"|"はCなどの言語ではorとして使用されているので意味的にも合っているのではないかということで、こちらに決めました。
posted by T.M at 00:00| Comment(0) | TrackBack(0) | TabFolder | このブログの読者になる | 更新情報をチェックする

2002年05月24日

2002/05/24 フォルダを開く

オンラインソフトによくある機能として関連フォルダを開くものがあります。
ES Launcherもボタンの上でサイドボタンをクリックするか、Ctrl+BSでアイテムのあるフォルダを開く機能があります。
他には解凍ソフトなどでも解凍後にフォルダを作成して、そのフォルダを開くなどというものもあります。
挙げればきりが無いほど当たり前のように搭載されている機能ですが微妙に違っていることも…

どう違うのかというとフォルダにエクスプローラ以外のソフト(例えばTabFolder)を標準として関連付けていても、 それを無視してエクスプローラのフォルダで開いてしまうものがあるということです。
なぜそうなってしまうのかというと、ソフト側で標準の関連付けではなく”開く”で開いてしまう(日本語としてかなり変な表現ですが(w)ように命令を出しているからです。


同じようにURLをクリックするとブラウザでそのURLを開くような機能でも、IE以外のブラウザを標準にしている場合でもなぜかIEで開くものもがあります。
これも原因は同じですが、どちらの場合も意図的にこのような動作にしようと思っている作者はほとんどいないと思います。
やはり一番の原因はShellExecute()を解説している本やサイトの例のほとんどで第2引数が"open"になっているからでしょう。
NULLにするだけで標準の関連付けで開くようになるのですけどね…
posted by T.M at 00:00| Comment(0) | TrackBack(0) | 雑記 | このブログの読者になる | 更新情報をチェックする

2002年05月23日

リムーバブル

読み込み中に書き込みエラー??

ちょっと昔のツールが欲しかったのでバックアップしてあるMOをTabFolderで開きました。
フォルダをいろいろ開いていくと、なぜかファイルの検索中にライトプロテクトされているので書き込みが出来ないというメッセージの出るフォルダが…

確かにライトプロテクトはしてあります。でも検索中に書き込みはしていません。
しかも出るフォルダと全く出ないフォルダがあります。

デバッグ

いろいろ検証していくうちにどうもEXEファイルのあるフォルダに必ず出ると言うことまで分りました。
再現性のあるバグならばもう取れたも同然(w
デバッグで書き込み?をしているらしい個所を突き止めました。

どうもファイルの種類とシェルの属性、アイコンのインデックスを取得している関数で発生しているようでした。
この関数ではSHGetFileInfo()を使用してこれらのデータを取得するようになっているのですが、どうもフラグの設定によって書き込みが起こるようです。

問題のフラグはSHGFI_ATTR_SPECIFIEDというフラグでした、これを外すとエラーが表示されることは無くなりました。
特に表示や取得に失敗するということもありません。なんで指定していたのでしょう?(おい(w)

万事解決

その答えはすぐに分りました。
他のドライブを開こうとドライブ一覧を表示すると空のFDDにアクセス。
変更したところと言えば先程の部分しかありません。
前述の関数はドライブ一覧の時も呼び出されています。
やはり元に戻すと直りました。

そうすると再び前の問題が…しかし原因は分っているので処理を分けることでうまく行きました。

この他にもタブをすべて閉じてもイジェクトできなかったり、リムーバブルメディアには結構悩まされました。
しかしそれも今となっては良い思い出です。(どこが(w)
posted by T.M at 00:00| Comment(0) | TrackBack(0) | TabFolder | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。