ページ 11

DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月27日(日) 19:34
by tk-xleader
Dxライブラリ付属のアーカイバであるDxアーカイブをGUI上で動くようにしたソフトを作ってみました。

http://tkmakwins15.tuzikaze.com/downloa ... rchive.lzh
http://tkmakwins15.tuzikaze.com/downloa ... rchive.zip

Dxアーカイブには簡易的なパスワードによる暗号化機能もあり、とても有用なものなのですが、パスワードを設定するにはコマンドラインを操作しなければならず、コマンドラインを使えない人のなかには、使えずに困ってる人もいる事だと思います、これはそれをGUI上で動くように設計しました。
GUI上で動くといっても、Dxアーカイブをラップしたようなソフトですので、Dxアーカイブ本体は必要です。


これについて批評をお願いします。

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月27日(日) 21:55
by Justy
 そのリンクをクリックしても上記の画面が表示されて、DLできなかったです。
 一端 URLをコピーして直接アクセスしたら DLできました。

 一応ご報告まで。

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月27日(日) 22:35
by tk-xleader
あれ…、URL自体は間違っていないはずなのに…

では添付にします。

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月28日(月) 00:26
by Justy
>URL自体は間違っていないはずなのに…
 直リン禁止なのかもしれません・・・。



>これについて批評をお願いします。
 便利そうですね。
 もう少し、改良すれば結構使えそうです。
 とりあえず一通り試してみました。


・ リストの保存機能
 複数のディレクトリからかき集めて1つのアーカイブファイルを作る場合とかで
何度も同じものをパックし直すときに、過去のパックリストが再利用できると楽です。

・ リストの削除を DELETEキーで
 わざわざメニューから削除するのも面倒なので、DELETEキーで削除できると楽です。

・ ドロップ&ドロップ領域
 これって要りますか?
 この領域以外でもなくても普通にD&Dすれば追加できるので、
画面の余白にでもそう書いておくだけでいいのではないでしょうか。

・ パスワード
 DxArchiveはデフォルトではパスワードは 12文字なのですが、
12文字を越えて入力できてしまうようです。
 ちなみにメニューの「パスワードの指定」は機能しないようです。

・ テンポラリ
 一端アーカイブ化するファイルをアプリの直下にコピーしているようですが、
アプリ直下じゃなく、OSのテンポラリとかを使った方がいいのではないでしょうか。

 というのも、先ほど試したとき作ったアーカイブを DxaDecode.exeで
アプリの直下にデコードして展開されたディレクトリ・ファイルがそこにあったのですが、
このツールで再度アーカイブを作成したときに上書き・削除されてしまいました。

・ メニューを除く文字が大きい
 うちだけなのかもしれませんが、メニューの文字と大きさが
合ってないです。
 もう少し小さい文字でもいいのではないでしょうか。


 と、こんなところでしょうか。

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月28日(月) 08:12
by tk-xleader
>リストの保存機能

なるほど、書庫のリストの保存機能は確かに欲しくなりますね。

>リストの削除を DELETEキーで

うーん、「アクセラレータ」について勉強してみます。

>ドロップ&ドロップ領域

リストボックスに保存した場合、正しく動作しません。そこは改良できるかと思います。

>パスワード

そうですね。そこは全然親切ではないですね…。
メニューのほうは、そもそも違う事に使うはずだったのですが、未実装だった事もあり、書き換える事を忘れてました。

>テンポラリ

テンポラリファイルのファイル名を得られるAPI関数がありましたので、それを使わせていただきます。

>メニューを除く文字が大きい

CreateFontさえ何とかなれば…SendMessage(hWnd/*コントロールのハンドル*/,WM_SETFONT,hFont,0)で大丈夫のはずですが…
全然うまく行きません。

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月28日(月) 08:53
by バグ
初回のソフト起動のあとに出てくるファイル操作用のダイアログを表示したまま、本体のWindowを終了させると妙な動きになります。

設定用のiniファイルが無い場合にのみ起こる現象のようです。

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月28日(月) 12:30
by tk-xleader
>本体のWindowを終了させると妙な動きになります。

仕様です。その部分のコードはどうなっているかというと…
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ソフトを作ってみました。

Posted: 2008年4月28日(月) 13:06
by バグ
なるほど仕様でしたか、失礼しました…m(_ _)m

※ここからは個人的な趣味の話なので、聞き流してもらってかまいません。

>>変数名は別のところで宣言定義してます。動作としては、iniファイルにDxEncode.exeのパスが入るまで
>>(エラーの場合SetUpFileは空文字列を返す)設定をやり直させるようになっています。

それならば、モードレスダイアログを使用して処理するのではなく、モーダルダイアログを使用して、設定中は他のWindowにフォーカスが移らないようにして、設定が終わるまではダイアログ自体を終了できないようにするべきではないかと思います。その方が自然な動きではないかなぁ…と個人的には思います。

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月28日(月) 23:16
by tk-xleader
>モードレスダイアログを使用して処理するのではなく、モーダルダイアログを使用して、設定中は他のWindowにフォーカスが移らないようにして、設定が終わるまではダイアログ自体を終了できないようにする

コモンダイアログでもそのようなことは可能なのでしょうか?

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月29日(火) 00:52
by GPGA
>コモンダイアログでもそのようなことは可能なのでしょうか?
OPENFILENAME構造体のhwndOwnerメンバにメインウインドウのハンドルを指定モーダルになりませんかね?(試していない)

Re:DxアーカイブのGUIソフトを作ってみました。

Posted: 2008年4月30日(水) 23:53
by tk-xleader
モーダルになりませんでした。何か別の策を練って見ます。