みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

こんなフリーソフトは嫌だ

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

こんなフリーソフトは嫌だ

投稿記事 by みけCAT » 13年前

世の中には、いろいろなフリーソフトがあります。
その中には、どうも好きになれない、不快な挙動のものもあります。
ここで、そのような挙動や仕様を列挙していきたいと思います。
※個人の感想です

起動時のカレントディレクトリに依存する
フリーソフトの中には、起動時のカレントディレクトリに、
いろいろなファイルを保存するものがあります。
そのようなソフトでは、自作のランチャーから起動した場合など、
カレントディレクトリがexeファイルのあるディレクトリと違う場合、
あらぬ場所にファイルが作られてしまいます。
また、ファイルが作られるだけならまだマシですが、
必要なファイルが読み込めずに誤動作してしまうこともあります。

対策としては、(C言語かつWindowsの場合)この関数を定義し、プログラムの最初で呼び出せばおkです。

CODE:

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);
}
これでカレントディレクトリをexeファイルのあるディレクトリに設定してくれるはずです。
もしくは、きちんとファイルを絶対パスで指定するべきだと思います。

無駄にインストールさせられる
世の中には、インストーラのみを提供しているフリーソフトがあります。
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ウィンドウ化ツールなどのツールを使うことがあります。

これ以外にも、みなさんの嫌いな動作等の体験談等がありましたら、
お聞かせいただければ幸いです。
オフトピック
訳:どうかコメントを下さい。お願いします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: こんなフリーソフトは嫌だ

投稿記事 by h2so5 » 13年前

(´・ω・`)つ コメント

ISLe
記事: 2650
登録日時: 15年前

Re: こんなフリーソフトは嫌だ

投稿記事 by ISLe » 13年前

わたしは起動時のカレントディレクトリに依存するほうが好みですけどね。
プログラム本体は管理者権限が無いと書き換えられない安全な場所に配置しておいて、各ユーザー毎に設定を保存するディレクトリを指定したショートカットで起動すれば、設定だけをバックアップするのも容易です。
実行ファイルと同じ場所に設定ファイルを作るソフトのせいでユーザーフォルダが荒れるのをどうにかしたいです。


フリーソフトにはフルスクリーンを解除したときにウィンドウの位置やサイズがクリップされてしまっているものがけっこうありますね。
そうならない手順がちゃんとあるのですが浸透していないようで。
最後に編集したユーザー ISLe on 2012年2月25日(土) 18:43 [ 編集 2 回目 ]

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: こんなフリーソフトは嫌だ

投稿記事 by みけCAT » 13年前

>>h2so5さん
ありがとうございますwww

>>ISLeさん
なるほど、ユーザー別設定ですか。
しかし、それしか選択肢がないというのはどうかと思います。
ユーザー別フォルダ/指定フォルダ/exeと同じフォルダ/レジストリ
などの保存先を選べるのが理想かもしれません。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前

Re: こんなフリーソフトは嫌だ

投稿記事 by MoNoQLoREATOR » 13年前

>>予告なしにフルスクリーン化・フルスクリーン動作しかない

ああ~、私もこれは嫌いですね。
私のPCは重いときにフルスクリーンの実行ファイルを立ち上げてしまうとフリーズする可能性が高くて強制終了するはめになるんですよ。

う~む、万が一 私がソフトウェアを作ることになった場合はこういったところに気をつけると良いのですね。

ISLe
記事: 2650
登録日時: 15年前

Re: こんなフリーソフトは嫌だ

投稿記事 by ISLe » 13年前

みけCAT さんが書きました:ユーザー別フォルダ/指定フォルダ/exeと同じフォルダ/レジストリ
などの保存先を選べるのが理想かもしれません。
どこに保存されているのかをどこに記録するのかという問題がありますね。

フリーソフトなんて作者に要望出して対応してもらえればよし、気に入らなければ使わなければ良いと思います。
Vista/7対応とか64ビット対応とか言ってUACが考慮されてないフリーソフトは山のようにありますからね。
便利さが勝てば使いますけどそうでなければ…。

書き忘れてましたけど。
ファイル選択ダイアログでフォルダを移動するとカレントディレクトリが変更されるので、起動時に実行ファイルのあるディレクトリをカレントディレクトリにして安心していると酷い目に会うときがくるかもしれません。

Gamer
記事: 9
登録日時: 14年前

Re: こんなフリーソフトは嫌だ

投稿記事 by Gamer » 13年前

はじめまして。コメントさせていただきます。
自分が一番イヤなのは”圧縮したファイルが一つのフォルダにまとめていない”という
ダウンロード物専用のフォルダにうっかり解凍してしまってどれがそのソフトの物かわからなくなる。
結局
新しいフォルダ作る>その中に引き込む>もう一回解凍>ファイル名従って前に解凍したファイルの削除

その次
予告なしにフルスクリーン化のもイヤです。
たまにOSにも問題があって、起動した途端に進めなくてブラックアウトのまま。。。

アバター
nullptr
記事: 239
登録日時: 13年前

Re: こんなフリーソフトは嫌だ

投稿記事 by nullptr » 13年前

嫌なかんじのフリーソフトですか・・・そうですねぇ、
デスクトップで作業してる場合はいいんですが、外出先でノートを使ってると、
ウィンドウの下のほうが画面からはみ出ているにもかかわらず、ウィンドウのサイズが変更できないものとか。
決定ボタンとかって大抵下のほうにあるから押せないorz
更に言えばショートカットキーも付けてなかったら最悪のコンボですね

・・・・これって小さいパソなのが悪いかw
しかもこれフリーじゃなくても起こりうるし・・・・

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: こんなフリーソフトは嫌だ

投稿記事 by みけCAT » 13年前

ISLe さんが書きました:どこに保存されているのかをどこに記録するのかという問題がありますね。
例えばTeraPadはこのような仕組みになっています。参考までに。
デフォルトでは、Windowsへログオンしたユーザー毎に設定内容を保存しま
す。全てのユーザーを同じ設定にするには同梱されている「usr.txt」を
「usr.ini」へリネームし「UserIni=0」としてください。また、Win2000/XP
等でユーザープロファイルフォルダのApplication Dataフォルダを指定した
い場合は「UserIni=2」とします。
ISLe さんが書きました:ファイル選択ダイアログでフォルダを移動するとカレントディレクトリが変更されるので、起動時に実行ファイルのあるディレクトリをカレントディレクトリにして安心していると酷い目に会うときがくるかもしれません。
ツール・ユーティリティだと考慮する必要がありますが、
ゲームでファイル選択ダイアログを使う場面はほとんどない(ゲームシステムによる?)ので、
あまり心配ないかもしれません。
また、GetOpenFileName関数やGetSaveFileName関数(というかOPENFILENAME構造体)の、
OFN_NOCHANGEDIRの指定って、本当に効いているのでしょうか?
Gamer さんが書きました:自分が一番イヤなのは”圧縮したファイルが一つのフォルダにまとめていない”という
ダウンロード物専用のフォルダにうっかり解凍してしまってどれがそのソフトの物かわからなくなる。
やってしまった場合は、更新日時でソートして上からそれっぽいものを集めれば、なんとかなるでしょうか?
また、解凍ソフトによっては、逆に2重にフォルダができてしまうこともあるので、
配布しているページにどのようになっているか書いておくのが理想かもしれません。
自分は、zipの場合はそのまま開き、その他の場合は7-zipで構造を確認してから解凍しています。
lowe さんが書きました:デスクトップで作業してる場合はいいんですが、外出先でノートを使ってると、
ウィンドウの下のほうが画面からはみ出ているにもかかわらず、ウィンドウのサイズが変更できないものとか。
使う側の対策としては、シフトムーブなどでウィンドウを動かせば、使えるようになりませんか?

ISLe
記事: 2650
登録日時: 15年前

Re: こんなフリーソフトは嫌だ

投稿記事 by ISLe » 13年前

みけCAT さんが書きました:例えばTeraPadはこのような仕組みになっています。参考までに。
こちらも設定ファイルが(ユーザーにとって)どこか知らないところに作られてしまうという問題をはらんでますよね。
あと書込み禁止メディアから起動するときはどうしたら良いと思われますか?
みけCAT さんが書きました:ツール・ユーティリティだと考慮する必要がありますが、
ゲームでファイル選択ダイアログを使う場面はほとんどない(ゲームシステムによる?)ので、
あまり心配ないかもしれません。
また、GetOpenFileName関数やGetSaveFileName関数(というかOPENFILENAME構造体)の、
OFN_NOCHANGEDIRの指定って、本当に効いているのでしょうか?
そこら辺に気が回るフリーソフト作者なら起動時のカレントディレクトリ使うのはポリシー持ってやってるのでは。
起動時にカレントディレクトリ変更したところでカレントディレクトリに依存しているという問題は解決しないのでは、ということが言いたかったんですよね。


また追加でコメントして申し訳ないですが。
XPはあと2年ほどでサポート切れます。
そうすると.NET FrameworkはすべてのWindowsOSで標準搭載ということになります。
というか延長サポートフェイズのXPよりメインストリームサポートフェイズのVista/7が既にメインという考え方もあるかと。
Vistaもあと2ヵ月弱で延長サポートフェイズに入りますし。
あと.NETでしか使えない便利なライブラリも提供されているのですよね。
最後に編集したユーザー ISLe on 2012年2月26日(日) 16:20 [ 編集 2 回目 ]

アバター
沖 滉均
記事: 237
登録日時: 14年前

RE: こんなフリーソフトは嫌だ

投稿記事 by 沖 滉均 » 13年前

では個人的に
みけCAT さんが書きました:●標準搭載でないライブラリに依存する(特にWindows向け)
世の中には、あるライブラリ(DirectX、.NET Frameworkなど)に依存したソフトウェアがあります。
明らかにそのライブラリを使ったほうが楽に作れ、品質も上がる場合
(特にDirectXやRPGツクールランタイムなど)
はしょうがないですが、それ以外の場合なら、なるべく依存しないようにするべきだと思います。
(例:ただのBPM測定ツールに.NET Frameworkなどは嫌い)
ただし、Javaのランタイムについては仕方ないのでここでは対象外です。
DLL等の形でソフトウェアに添付できる(別にインストールではない)ものも対象外です。
(特にWindows向け)とは、Linuxではあるソフトウェアをインストールしようとした時に、
依存関係にあるパッケージを同時にインストールすることがかなりよくあるので、対象外ということです。

対策としては、そのままライブラリを使わないようにプログラムを組むことしかないと思います。
Javaのランタイムについては仕方ないのでここでは対象外
それを言うなら.NET Frameworkも対象外にしても良いはず。
そもそもJavaも標準搭載ではないし必須ではありません。
違う物差しで測って、好き嫌いで.NET Frameworkを排除するのは間違っていると思います。
また、Windows7以降は.NET Frameworkは標準搭載です。