Dxライブラリ付属のアーカイバであるDxアーカイブをGUI上で動くようにしたソフトを作ってみました。
http://tkmakwins15.tuzikaze.com/downloa ... rchive.lzh
http://tkmakwins15.tuzikaze.com/downloa ... rchive.zip
Dxアーカイブには簡易的なパスワードによる暗号化機能もあり、とても有用なものなのですが、パスワードを設定するにはコマンドラインを操作しなければならず、コマンドラインを使えない人のなかには、使えずに困ってる人もいる事だと思います、これはそれをGUI上で動くように設計しました。
GUI上で動くといっても、Dxアーカイブをラップしたようなソフトですので、Dxアーカイブ本体は必要です。
これについて批評をお願いします。
DxアーカイブのGUIソフトを作ってみました。
Re:DxアーカイブのGUIソフトを作ってみました。
そのリンクをクリックしても上記の画面が表示されて、DLできなかったです。
一端 URLをコピーして直接アクセスしたら DLできました。
一応ご報告まで。
一端 URLをコピーして直接アクセスしたら DLできました。
一応ご報告まで。
Re:DxアーカイブのGUIソフトを作ってみました。
>URL自体は間違っていないはずなのに…
直リン禁止なのかもしれません・・・。
>これについて批評をお願いします。
便利そうですね。
もう少し、改良すれば結構使えそうです。
とりあえず一通り試してみました。
・ リストの保存機能
複数のディレクトリからかき集めて1つのアーカイブファイルを作る場合とかで
何度も同じものをパックし直すときに、過去のパックリストが再利用できると楽です。
・ リストの削除を DELETEキーで
わざわざメニューから削除するのも面倒なので、DELETEキーで削除できると楽です。
・ ドロップ&ドロップ領域
これって要りますか?
この領域以外でもなくても普通にD&Dすれば追加できるので、
画面の余白にでもそう書いておくだけでいいのではないでしょうか。
・ パスワード
DxArchiveはデフォルトではパスワードは 12文字なのですが、
12文字を越えて入力できてしまうようです。
ちなみにメニューの「パスワードの指定」は機能しないようです。
・ テンポラリ
一端アーカイブ化するファイルをアプリの直下にコピーしているようですが、
アプリ直下じゃなく、OSのテンポラリとかを使った方がいいのではないでしょうか。
というのも、先ほど試したとき作ったアーカイブを DxaDecode.exeで
アプリの直下にデコードして展開されたディレクトリ・ファイルがそこにあったのですが、
このツールで再度アーカイブを作成したときに上書き・削除されてしまいました。
・ メニューを除く文字が大きい
うちだけなのかもしれませんが、メニューの文字と大きさが
合ってないです。
もう少し小さい文字でもいいのではないでしょうか。
と、こんなところでしょうか。
直リン禁止なのかもしれません・・・。
>これについて批評をお願いします。
便利そうですね。
もう少し、改良すれば結構使えそうです。
とりあえず一通り試してみました。
・ リストの保存機能
複数のディレクトリからかき集めて1つのアーカイブファイルを作る場合とかで
何度も同じものをパックし直すときに、過去のパックリストが再利用できると楽です。
・ リストの削除を DELETEキーで
わざわざメニューから削除するのも面倒なので、DELETEキーで削除できると楽です。
・ ドロップ&ドロップ領域
これって要りますか?
この領域以外でもなくても普通にD&Dすれば追加できるので、
画面の余白にでもそう書いておくだけでいいのではないでしょうか。
・ パスワード
DxArchiveはデフォルトではパスワードは 12文字なのですが、
12文字を越えて入力できてしまうようです。
ちなみにメニューの「パスワードの指定」は機能しないようです。
・ テンポラリ
一端アーカイブ化するファイルをアプリの直下にコピーしているようですが、
アプリ直下じゃなく、OSのテンポラリとかを使った方がいいのではないでしょうか。
というのも、先ほど試したとき作ったアーカイブを DxaDecode.exeで
アプリの直下にデコードして展開されたディレクトリ・ファイルがそこにあったのですが、
このツールで再度アーカイブを作成したときに上書き・削除されてしまいました。
・ メニューを除く文字が大きい
うちだけなのかもしれませんが、メニューの文字と大きさが
合ってないです。
もう少し小さい文字でもいいのではないでしょうか。
と、こんなところでしょうか。
Re:DxアーカイブのGUIソフトを作ってみました。
>リストの保存機能
なるほど、書庫のリストの保存機能は確かに欲しくなりますね。
>リストの削除を DELETEキーで
うーん、「アクセラレータ」について勉強してみます。
>ドロップ&ドロップ領域
リストボックスに保存した場合、正しく動作しません。そこは改良できるかと思います。
>パスワード
そうですね。そこは全然親切ではないですね…。
メニューのほうは、そもそも違う事に使うはずだったのですが、未実装だった事もあり、書き換える事を忘れてました。
>テンポラリ
テンポラリファイルのファイル名を得られるAPI関数がありましたので、それを使わせていただきます。
>メニューを除く文字が大きい
CreateFontさえ何とかなれば…SendMessage(hWnd/*コントロールのハンドル*/,WM_SETFONT,hFont,0)で大丈夫のはずですが…
全然うまく行きません。
なるほど、書庫のリストの保存機能は確かに欲しくなりますね。
>リストの削除を DELETEキーで
うーん、「アクセラレータ」について勉強してみます。
>ドロップ&ドロップ領域
リストボックスに保存した場合、正しく動作しません。そこは改良できるかと思います。
>パスワード
そうですね。そこは全然親切ではないですね…。
メニューのほうは、そもそも違う事に使うはずだったのですが、未実装だった事もあり、書き換える事を忘れてました。
>テンポラリ
テンポラリファイルのファイル名を得られるAPI関数がありましたので、それを使わせていただきます。
>メニューを除く文字が大きい
CreateFontさえ何とかなれば…SendMessage(hWnd/*コントロールのハンドル*/,WM_SETFONT,hFont,0)で大丈夫のはずですが…
全然うまく行きません。
Re:DxアーカイブのGUIソフトを作ってみました。
初回のソフト起動のあとに出てくるファイル操作用のダイアログを表示したまま、本体のWindowを終了させると妙な動きになります。
設定用のiniファイルが無い場合にのみ起こる現象のようです。
設定用のiniファイルが無い場合にのみ起こる現象のようです。
Re:DxアーカイブのGUIソフトを作ってみました。
>本体のWindowを終了させると妙な動きになります。
仕様です。その部分のコードはどうなっているかというと…
(エラーの場合SetUpFileは空文字列を返す)設定をやり直させるようになっています。
仕様です。その部分のコードはどうなっているかというと…
if(PathFileExists(inifullpath.c_str())==0){ do{ dxapath=SetUpFile(inifullpath.c_str()); }while(dxapath==""); }else{ ifstream ini(inifullpath.c_str()); getline(ini,dxapath); }変数名は別のところで宣言定義してます。動作としては、iniファイルにDxEncode.exeのパスが入るまで
(エラーの場合SetUpFileは空文字列を返す)設定をやり直させるようになっています。
Re:DxアーカイブのGUIソフトを作ってみました。
なるほど仕様でしたか、失礼しました…m(_ _)m
※ここからは個人的な趣味の話なので、聞き流してもらってかまいません。
>>変数名は別のところで宣言定義してます。動作としては、iniファイルにDxEncode.exeのパスが入るまで
>>(エラーの場合SetUpFileは空文字列を返す)設定をやり直させるようになっています。
それならば、モードレスダイアログを使用して処理するのではなく、モーダルダイアログを使用して、設定中は他のWindowにフォーカスが移らないようにして、設定が終わるまではダイアログ自体を終了できないようにするべきではないかと思います。その方が自然な動きではないかなぁ…と個人的には思います。
※ここからは個人的な趣味の話なので、聞き流してもらってかまいません。
>>変数名は別のところで宣言定義してます。動作としては、iniファイルにDxEncode.exeのパスが入るまで
>>(エラーの場合SetUpFileは空文字列を返す)設定をやり直させるようになっています。
それならば、モードレスダイアログを使用して処理するのではなく、モーダルダイアログを使用して、設定中は他のWindowにフォーカスが移らないようにして、設定が終わるまではダイアログ自体を終了できないようにするべきではないかと思います。その方が自然な動きではないかなぁ…と個人的には思います。
Re:DxアーカイブのGUIソフトを作ってみました。
>モードレスダイアログを使用して処理するのではなく、モーダルダイアログを使用して、設定中は他のWindowにフォーカスが移らないようにして、設定が終わるまではダイアログ自体を終了できないようにする
コモンダイアログでもそのようなことは可能なのでしょうか?
コモンダイアログでもそのようなことは可能なのでしょうか?
Re:DxアーカイブのGUIソフトを作ってみました。
>コモンダイアログでもそのようなことは可能なのでしょうか?
OPENFILENAME構造体のhwndOwnerメンバにメインウインドウのハンドルを指定モーダルになりませんかね?(試していない)
OPENFILENAME構造体のhwndOwnerメンバにメインウインドウのハンドルを指定モーダルになりませんかね?(試していない)