[BlueLeaf1336]> PROBLEMS> DownX>

DownX - Try&Error

overviewTOP

作っては捨て、作っては捨て、最終的に諦めるまで研ぎ澄まそうというためのページです。上に行くほど新しくなるように配置します。ファイルの構成は、最新版(てっぺんにあるリンク)のみEXEとソース、旧版(てっぺんにないリンク)はソースのみです。また、upx124wを元のファイル構成のまま(のはず)で同梱しています。再配布可能なようですので。

レジストリは使用しません。置き場所は何処でもかまいません。ただし、同梱の「upx124w」フォルダは中身も含めて「DownX.exe」と同階層に置いてください。また、デスクトップなどに保存するとDOSに送り込むコマンドが長くなりすぎて動かなくなる可能性があります。というか多分動きません。[2004/04/08]これは多分パスの途中にスペースが入っているのを考慮していなかったためだと思います。今では動きます。

Windows 2000 (5.0.2195) Service Pack 4 で動作確認しています。Borland Delphi 6 Personal で作成しています。ダウンロードファイルの中に、ここの場所を書き込んだファイルが存在しない場合があります。最新版を追い求めたいという奇特な方はご注意ください。

2004/05/13(金)TOP

しばらく使ってみましたが、ヨイカンジなので基本的にここまでにします。最新版は、別のページに説明書も含めておいてあります。最新版のあるページへ移動する

2004/04/16(金)TOP

ベスト圧縮で10個とかのEXEを圧縮するとフリーズしたんじゃないかと思うほど遅いので、実際にフリーズした場合はしったこっちゃナインですが、そうでない場合のための心の安らぎのために経過時間を表示するようにしました。TTimerを使って1秒ごとに更新しているだけですが。

それから、今何処まで処理が進んでいるのかを表示するために、処理実行中のみプログレスバーを表示するようにしました。わざわざステータスバーを親にして。

それから、INIファイルへの保存対象に圧縮レベルの設定を含めるようにしました。

最後に、途中で嫌になった時のための処理中断(といっても、一旦UPXが実行中になったらUPX自体の処理を中断することはできません。つまり、複数のファイルを圧縮しようとたくらんで、途中で気が変わって中断したくなったら、1つ目の処理が終る前に中断キーを押すと、ドロップされた全てのファイルを順にUPXに渡すループを抜けられます。)を指示するキーを、ESCAPEキーからCTRLキーに変えました。
なぜって? 実行結果を表示するメッセージボックスが、処理中断のために押している(長押している!)ESCAPEキーでほぼ100%、読むまもなく閉じられるからです。

あ、あとメッセージの出し方を少し変えました。といっても以前からの予想通り、10個のファイルを圧縮(特にベスト圧縮)するとメッセージボックスのOKボタンが押せないぐらい縦長のものになることを確認しました。

ダウンロードファイル20040416DownX.zip(16,847bytes)

メインの画面です。画面下に経過時間とプログレスバーを表示するようにしました。(そんなに大量のEXEを同時に圧縮する状況なんて絶対にきませんけど...)

2004/04/11(日)TOP

まず、ずっと「とれないんだ」と思っていたエラーが、「実は取れているのに関係無いのものを表示していただけ」ということに気付きました。で、直しました。あぁすっきり。
ベスト圧縮時の処理をすっきりというか他とそろえたというか、最終形態になりました(文章がねじれました)。
(へちょ)アイコンを作りました。「NOT UPX」と描いています。「DownX」と描けなかったんです、せますぎて...。さらに小さい方のアイコンはどうしようもなくなってまして「<>(Delphiのノットイコール記号)」です。もはや「DownX」どころか「UPX」も無理で「NOT」も無理。結局「NOT」に近い「<>」にしています。最早何のことやら。
画面をさらに簡素化しました。いよいよ画面上に日本語がなくなりました。いつもどおりのアバウト画面をつけました。で、サイズがでかくなりました。
...ぐらいですねぇ。いよいよ最終段階のような感じがします。

ダウンロードファイル20040411DownX.zip(16,298bytes)

メインの画面です。かなりあっさり。メニューの中身は特に変わってません。このページのどこかにあります。

ベスト圧縮時の処理結果を表示しているところです。UPXのヘルプに書いてあるとおりに2種類を試してサイズの小さい方で改めて本番圧縮しているので1つの実行ファイルの圧縮に3回分の圧縮処理を行っています。当然遅いです。
軽く気になるのが、たくさんのEXEをドロップしたときにメッセージ表示って画面におさまりきるんかなぁと。

念願のエラーメッセージです。「既に圧縮済みですエラー」が表示されているところです。

2004/04/08(木)TOP

部品をかなり減らしました。まずUPXのパスなんて一回設定したら、否! 一緒に再配布してよいと書いてあるんだから、その一回すら必要なし! というわけでメニューのキャプションに放り込みました。で、そのつながりでUPXの情報表示系のコマンド実行も同じくそこに。
それから、バックアップやリソースの圧縮に関するオプションは、自分が使わないこともあってこれまたメニューに放り込みました。
さらに、圧縮か解凍かをページ切り替えなんて邪魔くさいこといわずに、ファイルのドロップ位置で判定するようにしました。ただし、圧縮レベル、これだけは、UPXの唯一の楽しみのこれだけは画面上に残しています。
まあ、問題は上下どちらのグループボックスにファイルが落とされたか、で、圧縮か解凍かを判定していますが、圧縮ボックスの方にはレベル切り替えするためのスライダーがあるので、ちょうどその上だと、アマアマの判定方法なので何もしなかったりしますが...ちょっとはマシになった気がします。

ダウンロードファイル20040408DownX.zip(12,149bytes)

メイン画面というか唯一の画面です。ファイルを上のボックスに落とすか下のボックスに落とすかで、圧縮/解凍を切り替えます。駄目な方に落とすとおかしなメッセージを表示します。

UPX設定メニューです。先頭のメニューをクリックするとUPXのあるフォルダを選択するダイアログが開きます。ここで正しいフォルダを選択しないと何もできません。が、ダウンロードしていただいた場合は何もせずとも、それだけで動くはずです。もし動かなければ捨ててください。

ほとんどではなく全く使ったことのないオプションの設定が可能です。

圧縮してみたところです。以前と同じく、UPXの言う通りです。

2004/04/06(火)TOP

少しだけ変更しましたが、根本的な「使いにくいなぁ」感は残りまくりです。たとえば圧縮と解凍をいちいちタブをクリックして切り替えるとか、UPXがなくても普通にエラーにならないとか。

早い話それ以外のどうでもよいところを触りました。たとえば起動時の場所を記憶しておいて次回再現するために起動場所にINIファイルを勝手に作るとか、best圧縮でUPXのお達しの通り2種類試して小さい方を採用する時に(チャンと消すとはいえ)起動場所に一時ファイルを作って、それとは別に元のファイルを勝手にバックアップするとか。

少なくともアイコンにドロップしたら勝手に圧縮始める機能は必要な気がします。それから圧縮と解凍を自動で判断するつもりがないので、フォームのドロップ位置で(アイコンドロップの場合は無理ですな)どっちかにする機能(ではなくフォームデザイン)にする必要があると思います。後は...なんでしょう?

ダウンロードファイル20040406DownX.zip(11,131bytes)

2004/04/05(月)TOP

まず最初に、全然途中です。ただしやりたいことは入ってます。チャンと動くし、それぞれのオプションもそのように動作します。でも、「best圧縮」だけはそうでもないです。
一番の問題は作ったように動いているけど、使いにくいということです。あ、あとDOS窓で確認できるエラー情報を、パイプで横取りすると何故か取得できません。なぜ?「AlreadyPackedException」とか。

ダウンロードファイル20040405DownX.zip(8,465bytes)

圧縮モードです。この状態でフォームに圧縮したいEXEファイルをドラッグ&ドロップすると黙って圧縮します。終了後、確認のメッセージを表示します。成功しようが失敗しようが。既に圧縮済みの場合「既に圧縮済みであることが不明な形で」失敗を通知します。

解凍モードです。この状態でフォームに解凍したいEXEファイルをドラッグ&ドロップすると黙って解凍します。 終了後、確認のメッセージを表示します。成功しようが失敗しようが。圧縮してないファイルの場合「圧縮してませんということが不明な形で」失敗を通知します。

コード内にハードコーティングしているのと何ら変わらない形で、TEditにハードコーディングしたUPX本体のパスです。触らないでね。

圧縮モードでEXEを1つドラッグ&ドロップしてしばらく待った後に表示されるメッセージです。基本的にDOS窓で確認できる内容をそのまま表示しているだけです。

EOFTOP