2006年11月10日

本体はできても

ヘルプがまだという、いつものパターン突入。
今日か明日までには新版をアップする予定です。
posted by T.M at 00:00| Comment(0) | TrackBack(0) | TabFolder | このブログの読者になる | 更新情報をチェックする

2006年11月03日

Version 1.6.1.0

2006/11/03:Version 1.6.1.0


  • ウィンドウのオプション追加。※1
  • 環境変数展開の修正。※2
  • ファイル表示チェックの修正。※3
  • アイコンの変更。


  • ※1.アクティブウィンドウに合わせてタブバーの位置を移動するオプションを追加。
    ※2.9x系OSで環境変数の展開ができていなかったのを修正。
    ※3.ショートカットの拡張子を表示しない設定で同じ名前のフォルダまたはファイルを作成すると、タブを開きな直すまで表示されなかったのを修正。

    ダウンロード:TF1610.ZIP

    続きを読む
    posted by T.M at 00:00| Comment(0) | TrackBack(0) | TabFolder | このブログの読者になる | 更新情報をチェックする

    2002年10月29日

    圧縮フォルダ3

    形式別の仕様の違い

    とりあえずLHAを基準にZIP・CABでも同じ動作になるようにコーディングしていきました。
    それぞれのdllのドキュメントを読みつつ進めてきましたが、まず最初にぶつかった壁がcab32.dllの制約でした。

    その制約はファイルが追加と書庫内のファイルの個別削除ができないということです。
    これができないとなると削除は勿論名前の変更もできません。

    書庫内のファイルの名前の変更は
    対象ファイルを解凍→書庫からファイルを削除→名前の変更→変更したファイルを書庫に追加
    という手順で行っています。これがcab32.dllではできません。
    これはcab32.dllの問題というよりCAB形式の仕様によるものなのでどうにもなりません。

    結局CAB形式の場合は名前の変更は
    全てのファイルを解凍→対象ファイルの名前の変更→書庫ファイルの新規作成
    という手順でやることになりました。

    手順は少ないので一見こちらの方が良さそうですが、実際はファイルを全部解凍するので書庫内のファイルが多ければ多いほど時間が掛かります。
    他に解決策が浮かばなかったのでこのようになりました。

    時間のズレ

    次にぶつかった壁はタイムスタンプのずれです。
    使用するだけの人は余り知らない事かもしれませんが、FAT系のフォーマットのタイムスタンプの秒は偶数でしか記録できません。秒数が奇数の場合は切り上げられます。

    私もそのことは知っていたのですが、NTFSではなぜか元々の秒が偶数なのにさらに+2秒されているファイルがあるのに気が付きました。
    たまたまとかではなくほとんど全部のファイルでした。

    例外としてTabFolderで日付の変更を行ったものは変化がありませんでした。
    違いは何か考えてみたらTabFolderの日付の変更の際には秒未満を切り捨てていました。

    FILETIMEでは100ns(100ナノ秒)単位、SYSTEMTIMEでも秒の下に実はms(ミリ秒)のメンバがあります。
    要するに偶数秒のタイムスタンプが+2秒になったのはこういうことでした。
    秒未満に数値が合った場合に秒を切り上げる→奇数秒になる→秒を切り上げ…
    実に単純かつ馬鹿らしい原因でした。
    ちなみにLHAではこの問題は起こりません。

    というわけでLHA以外の形式でNTFSの場合は、対象ファイルのタイムスタンプの秒未満を圧縮前に切り捨てることで解決しました。

    アイコン

    機能に関してはほとんど実装できたのであとは見た目です。
    要するにアイコンをどうするかなのですが、最初の頃は圧縮フォルダは通常のフォルダと特にあまり違いを感じさせないために、 あえてフォルダのアイコン(それでも一応区別はできるように半透明にしていましたが)で表示していました。

    しかしそれでは分りにくいという意見があったので、アイコンを変えないオプションを追加しました。

    これなら関連付けの設定で好きなようにアイコンを変えられるからです。
    さらにTabFolder側でもタブにアイコンを表示するオプションを追加して、圧縮フォルダの場合は色の違うアイコンを表示するようにもしました。

    最終的には圧縮フォルダ専用のアイコンを1つ用意して、形式毎にそのアイコンの基本となる3色を設定可能にすることで色が自由に変更できるようにしました。
    いわゆるパレットチェンジというやつです。

    ゲーム以外で使われているのはあまり見たことがないですが、この方がEXEに入れるリソースが節約できるので迷わずこの方法を選びました。

    随分端折ってしまったような気もしますが、だいたいこんな感じで圧縮フォルダの実装は行われました。
    posted by T.M at 00:00| Comment(0) | TrackBack(0) | TabFolder | このブログの読者になる | 更新情報をチェックする

    2002年08月17日

    圧縮フォルダ2

    対応形式を決める

    次に決めなければならないのは対応形式です。
    統合アーカイバ・プロジェクトには様々な形式に対応したDLLがあります。
    中には普段ほとんど見かけないような形式もあります。
    TabFolderは別に専用アーカイバではないので、あまり多くの形式に対応しようとは思いませんでした。
    と言うことで、まずは一般的に多く使用されているLHA、ZIP、CABの3つに対応させる事から始まりました。
    使用DLLはUnlha32.dll、7-zip32.dll、Cab32.dllです

    ZIPに7-zip32.dllを使用する理由は通常のZIP対応アーカイバより圧縮率が高く、これ1つで圧縮解凍ができるからです。
    (Unzip32.dllは解凍専用、圧縮にはZip32.dll、Zip32J.dllを使用)
    何より私が1番使いたかったDLLであるということもあります。

    仕様決定と開発開始

    さて実際にTabFolderに組み込むとなると、まず仕様を決めなければならない…はずなのですが、実はもうほとんど固まっていました。
    Plus!を入れると使用できるようになる(Me,XPでは標準)圧縮フォルダです。
    あれをそのままTabFolder内に取り込んだようなものが目標です。

    いよいよ開発にかかるわけですが、実は統合アーカイバ・プロジェクトのDLLは以前からインストールしていましたが、 SDKなどを読んだ事は一度も無く(w…まずドキュメントを読むことから始めました。
    基本(多分(w)となるUnlhaのドキュメントをざっと読み終えて思った事は…まさに「至れり尽せり」と言った感じです。

    あまりアーカイバとは関係ないちょっとしたツールでも、なぜかこのDLLを使った圧縮・解凍機能が付いていたりしますがこれで納得できました。
    posted by T.M at 00:00| Comment(0) | TrackBack(0) | TabFolder | このブログの読者になる | 更新情報をチェックする

    圧縮フォルダ2

    対応形式を決める

    次に決めなければならないのは対応形式です。
    統合アーカイバ・プロジェクトには様々な形式に対応したDLLがあります。
    中には普段ほとんど見かけないような形式もあります。
    TabFolderは別に専用アーカイバではないので、あまり多くの形式に対応しようとは思いませんでした。
    と言うことで、まずは一般的に多く使用されているLHA、ZIP、CABの3つに対応させる事から始まりました。
    使用DLLはUnlha32.dll、7-zip32.dll、Cab32.dllです

    ZIPに7-zip32.dllを使用する理由は通常のZIP対応アーカイバより圧縮率が高く、これ1つで圧縮解凍ができるからです。
    (Unzip32.dllは解凍専用、圧縮にはZip32.dll、Zip32J.dllを使用)
    何より私が1番使いたかったDLLであるということもあります。

    仕様決定と開発開始

    さて実際にTabFolderに組み込むとなると、まず仕様を決めなければならない…はずなのですが、実はもうほとんど固まっていました。
    Plus!を入れると使用できるようになる(Me,XPでは標準)圧縮フォルダです。
    あれをそのままTabFolder内に取り込んだようなものが目標です。

    いよいよ開発にかかるわけですが、実は統合アーカイバ・プロジェクトのDLLは以前からインストールしていましたが、 SDKなどを読んだ事は一度も無く(w…まずドキュメントを読むことから始めました。
    基本(多分(w)となるUnlhaのドキュメントをざっと読み終えて思った事は…まさに「至れり尽せり」と言った感じです。

    あまりアーカイバとは関係ないちょっとしたツールでも、なぜかこのDLLを使った圧縮・解凍機能が付いていたりしますがこれで納得できました。
    posted by T.M at 00:00| Comment(0) | TrackBack(0) | TabFolder | このブログの読者になる | 更新情報をチェックする

    広告


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

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

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


    ×

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