その中には、どうも好きになれない、不快な挙動のものもあります。
ここで、そのような挙動や仕様を列挙していきたいと思います。
※個人の感想です
●起動時のカレントディレクトリに依存する
フリーソフトの中には、起動時のカレントディレクトリに、
いろいろなファイルを保存するものがあります。
そのようなソフトでは、自作のランチャーから起動した場合など、
カレントディレクトリがexeファイルのあるディレクトリと違う場合、
あらぬ場所にファイルが作られてしまいます。
また、ファイルが作られるだけならまだマシですが、
必要なファイルが読み込めずに誤動作してしまうこともあります。
対策としては、(C言語かつWindowsの場合)この関数を定義し、プログラムの最初で呼び出せばおkです。
BOOL changedirtoexedir(void) {
unsigned char path[1000];
int i,j,len;
GetModuleFileName(0,(CHAR*)path,sizeof(path));
j=len=lstrlen((CHAR*)path);
for(i=0;i=0x80)i++;
else if(path[i]=='\\')j=i;
}
path[j==2?j+1:j]=0;
return SetCurrentDirectory((CHAR*)path);
}
もしくは、きちんとファイルを絶対パスで指定するべきだと思います。
●無駄にインストールさせられる
世の中には、インストーラのみを提供しているフリーソフトがあります。
Lhacaや7-zipなどのように、明らかにインストールが必要なソフトなら別に構わないのですが、
単純な機能で、どうみてもファイルのコピーだけで使えるだろというソフトのインストールは嫌いです。
これはかなり個人の好みの問題かもしれませんが。
対策としては、
1.例えばINASOFTの「いじくるつくーる」や「すっきり!デフラグ」のように、インストーラ版とアーカイブ版を両方提供する
ユーザーに選択の余地があり便利だが、webサーバーの容量とファイルをまとめる手間が約2倍必要。
2.昔の四聖龍神録などのように、基本インストーラだが7-zipなどで展開もできるようなファイルを作る
作り方がよくわからない。
などが考えられます。
●標準搭載でないライブラリに依存する(特にWindows向け)
世の中には、あるライブラリ(DirectX、.NET Frameworkなど)に依存したソフトウェアがあります。
明らかにそのライブラリを使ったほうが楽に作れ、品質も上がる場合
(特にDirectXやRPGツクールランタイムなど)
はしょうがないですが、それ以外の場合なら、なるべく依存しないようにするべきだと思います。
(例:ただのBPM測定ツールに.NET Frameworkなどは嫌い)
ただし、Javaのランタイムについては仕方ないのでここでは対象外です。
DLL等の形でソフトウェアに添付できる(別にインストールではない)ものも対象外です。
(特にWindows向け)とは、Linuxではあるソフトウェアをインストールしようとした時に、
依存関係にあるパッケージを同時にインストールすることがかなりよくあるので、対象外ということです。
対策としては、そのままライブラリを使わないようにプログラムを組むことしかないと思います。
●設定を保存できないと終了できない
世の中には、終了しようとした時に、設定を保存できないというダイアログが出て終了しないソフトがあります。
原因は、Program Filesフォルダには書き込めないということです。
設定が保存されたかをチェックすることは大事だと思いますが、
保存しないと終了できないというのはやりすぎだと思います。
終了方法がわからず、タスクマネージャのお世話になりました。
特に上の「無駄にインストールさせられる」とのコンボは最悪だと思います。
対策としては、「設定が保存できませんでした」と言って問答無用で終了しないのではなく、
「設定が保存できませんでした。このまま終了しますか?」という確認にするべきだと思います。
●設定をWindowsフォルダに保存しようとする
これは凶悪ですね。
Windowsフォルダなんて、管理者権限がないと絶対書き込めないだろうし、
管理者権限があってもむやみに書き込むべきではないところだと思います。
さらに上の「設定を保存できないと終了できない」と組み合わされた時には…
まず(作者のwebページ等に書き込める場所があれば)絶対書き込むでしょう。
対策としては、設定を
(持ち運び可能なソフトなら)exeファイルと同じディレクトリ、もしくは
(インストールor使うパソコンを固定前提なら)素直にレジストリかAppDataフォルダに保存するべきです。
●予告なしにフルスクリーン化・フルスクリーン動作しかない
私はフルスクリーンのソフトが嫌いです。
なぜなら、自分の環境では、フルスクリーンにされると、
デスクトップに戻った時に、ウィンドウのサイズがめちゃくちゃになっているからです。
四聖龍神録Plusや東方シリーズのように、ウィンドウかフルスクリーンかを選択できればいいのですが、
残念なことにフルスクリーンでしか起動できないソフトもあります。
対策としては、ウィンドウモードを選択できるようにするか、
ユーザーがDirectXウィンドウ化ツールなどのツールを使うことがあります。
これ以外にも、みなさんの嫌いな動作等の体験談等がありましたら、
お聞かせいただければ幸いです。
オフトピック
訳:どうかコメントを下さい。お願いします。