5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

vista対策

1 :デフォルトの名無しさん:2006/11/06(月) 20:41:33
まとめたい

355 :デフォルトの名無しさん:2007/02/27(火) 10:55:10
で、アップデータがHKCUを参照してもそれは有効なHKCUであるとは限らないから、
結論から言えばアップデータもHKCUにさわっちゃダメってこと。
アプリ本体のexeがインストールやアップデート後の初回起動を認識して
HKCUを適切に生成したり更新したりできなくてはならない。

356 :デフォルトの名無しさん:2007/02/27(火) 11:24:59
もうどうでもいいワラタ

357 :デフォルトの名無しさん:2007/02/27(火) 12:30:42
結論:やっぱりレジストリは一切使うな

358 :デフォルトの名無しさん:2007/02/27(火) 12:45:37
AppDataにXMLで設定を保存してるアプリも多いね。

359 :デフォルトの名無しさん:2007/02/27(火) 13:19:18
iniファイルで十分

360 :デフォルトの名無しさん:2007/02/27(火) 13:24:46
iniでは可変長のリストを持ちにくい件について。

361 :デフォルトの名無しさん:2007/02/27(火) 13:26:51
可変長のものは個別に別ファイルで無問題

362 :デフォルトの名無しさん:2007/02/27(火) 13:32:11
>>361
ちょwwwwwwそれはiniでは不十分ってことじゃないのか!?

363 :デフォルトの名無しさん:2007/02/27(火) 13:56:04
独自フォー!マット

364 :デフォルトの名無しさん:2007/02/27(火) 14:08:29
iniって拡張子にしてると、将来何が起きるか判らんから
適当に長い拡張子付けてるな。

どうせ設定・保存はなんか拡張してる間にか独自形式化しちゃったし

365 :デフォルトの名無しさん:2007/02/27(火) 14:16:10
>>357
で、VirtualStoreがらみでハマるわけですな

366 :デフォルトの名無しさん:2007/02/27(火) 14:21:25
つまり、独自フォルダにインストールし
レジストリは使わず、独自形式の設定ファイルを使うアプリが最強ってことですな

367 :デフォルトの名無しさん:2007/02/27(火) 16:49:22
>>365
C:にはインストールできない仕様にする

368 :デフォルトの名無しさん:2007/02/27(火) 16:53:28
どんどん本末転倒の坂を転げ落ちてますな
ちなみにuiAccess="true"はProgra Filesにインストールしないと効果が出ないよ
(おそらくユーザー権限で改竄ができるとダメ)

369 :デフォルトの名無しさん:2007/02/27(火) 16:53:45
Progra Files
mが抜けた

370 :デフォルトの名無しさん:2007/02/27(火) 19:45:08
>>339-341
それってさー、EXEコピって〜UPDATA.EXEとかにリネームして
実行しちゃえば条件に当てはまっちゃうんじゃないの?
別の名前じゃ起動しないとか、インストールしたフォルダからで
ないと起動しないとかならいいだろうけど。

371 :デフォルトの名無しさん:2007/02/27(火) 21:08:30
rename shoot_yourself_in_the_foot.exe update.exe
update.exe

372 :デフォルトの名無しさん:2007/02/27(火) 21:34:25
そもそもsetupやらupdateなんかがファイル名に含まれたらって
条件からして頭悪そうな案だよな。ていうか、やっつけ仕事?

373 :デフォルトの名無しさん:2007/02/27(火) 22:06:09
これって「アプリのデータをバックアップするにはどうするの?」
ってユーザーから聞かれたら
C:\Users\ユーザー名\AppData\Roaming\アプリ名
とかのフォルダの中身をどっかに保存して再インストール時はそれを元の場所に
戻せって言う事になるんだよね?

んでデフォではAppDataフォルダは隠しフォルダで見えないわけで…
おまけにUsersフォルダはエクスプローラでは「ユーザー」とかって見えちゃうわけで、、、
素人相手だとまじで説明とか混乱しそうで大変そうだな。

374 :デフォルトの名無しさん:2007/02/27(火) 22:21:53
AppDataはユーザーに触らせない前提のファイルを置く場所だから
ユーザーが自分でバックアップする必要があるならDocuments配下ですよ

375 :デフォルトの名無しさん:2007/02/27(火) 22:33:37
あー、そかDocumentsの下にアプリ名のフォルダ作ってそこにデータ、と。
ウィンドウの位置とか画面レイアウトとかオプションの類の情報は
レジストリに書きなさいよ、と。
んでAppDataにはユーザーに触らせない前提のファイル…?、と。

ふむ。今までアプリのフォルダに全部つっこんでたから
MS様の流儀に対応しようとすると大変だな。
Documents下のアプリ名フォルダに全部ぶちこむかなぁ


376 :デフォルトの名無しさん:2007/02/27(火) 23:49:42
>>375
Documentsの下に無断でフォルダを作るプログラマは、オレは首を
絞めてやるね。

377 :デフォルトの名無しさん:2007/02/27(火) 23:55:46
俺もDocutemsじゃなくてAppDataが正解だと思うなぁ。

378 :デフォルトの名無しさん:2007/02/28(水) 00:08:06
Documents以下にフォルダを作ってやりたいんですが構いませんねッ!?

  [はい] [インストールのキャンセル]


ってダイアログ出せばいいんですね?

379 :デフォルトの名無しさん:2007/02/28(水) 00:11:11
3大悪質プログラム

1)Cドライブの直下に無断でソフトをインストール
2)Documentsの直下に無断でフォルダを作りそこにデータを保存
3)エクスプローラなどの右クリックメニューに無断で項目を追加

380 :デフォルトの名無しさん:2007/02/28(水) 00:13:45
おお378よ、
Documents以下にフォルダをつくらせないとはなさけない

Documents以下にフォルダをつくってもいいですか?
▽[はい] [いいえ]

381 :デフォルトの名無しさん:2007/02/28(水) 00:25:00
ちょw、落ち着きかけた俺の心を乱すようなことをw

Documentsの下にわけわかんないフォルダを次々に作られるのは確かに
どーかと思うけどその方向がMSの思し召しだろ?たぶん。
AppDataだとバックアップ、リストアの手順を教えるのが面倒な事に
なりそうな予感がする。同様の理由でレジストリはまったく問題外。

つーことでDocumentsの下だな。
「スタートメニュー(?)からドキュメントっての開いてその中のアプリ名の
フォルダをどっかにコピっとけ」で済む。

今までなら「Program Filesの下のアプリのフォルダをどっかにコピっとけ」
って言うだけでプログラムごとバックアップできて良かったんだけどな。
もっと良い案があるなら教えてくれ。まじで。

382 :デフォルトの名無しさん:2007/02/28(水) 00:31:36
よし、じゃぁフォルダを作らずにDocuments直下に
データファイルその他諸々を置く。これで決まり。

383 :デフォルトの名無しさん:2007/02/28(水) 00:36:08
最低だw

384 :デフォルトの名無しさん:2007/02/28(水) 00:59:05
設定のエクスポート/インポート機能を作れば済むんじゃまいか。

385 :デフォルトの名無しさん:2007/02/28(水) 01:05:09
>384
バックアップ、リストアの手順を〜って件についてはそうだね。
ユーザーにアプリケーションが使っているファイルを直接いじらせるのは
ユーザーに書き換えさせるためにiniファイルに固執するのと同じ発想

そして>381の仕事は増える、と。

386 :デフォルトの名無しさん:2007/02/28(水) 01:19:30
Program Filesの代わりにMy Documentsを使えばいいじゃん

387 :デフォルトの名無しさん:2007/02/28(水) 01:26:24
Documentsにアプリごとインストールか。
すげー大技だなw

388 :デフォルトの名無しさん:2007/02/28(水) 01:40:00
それならインストール先はいちおうユーザーが選んだことになるしな
つーかユーザー別インストールするとマジでDocumentsがデフォルトの
インストール先にならなかったっけ?
サポートしてるのはMicrosoftのアプリくらいしかないような気がするけど

389 :デフォルトの名無しさん:2007/02/28(水) 01:42:25
C:\Users\hoge\AppData\Roaming\Fxjxtxu\某アプリ\

の下の階層にさらにAppDataを作ってくれましたよ。
もしかするとどんどん深くなるかもしれない(怖

390 :デフォルトの名無しさん:2007/02/28(水) 03:11:19
>>296
早くお奨めの洋書を教えろよ

391 :デフォルトの名無しさん:2007/02/28(水) 05:11:28
>>389
そのうち文字数制限を越えて落ちるから心配するなw
しかし考えてみれば、Program FilesやらAppDataにフォルダ作る時、パス長のチェックなんてしたことないな

392 :デフォルトの名無しさん:2007/02/28(水) 06:07:56
ファイルパスの文字数制限の前に、DOS互換関数が死ぬ罠。

393 :デフォルトの名無しさん:2007/02/28(水) 07:43:41
TCHAR path[MAX_PATH]があふれる話じゃないの?

394 :デフォルトの名無しさん:2007/02/28(水) 08:57:51
MAX_PATHなんて過去の遺物でしょうが。

395 :デフォルトの名無しさん:2007/02/28(水) 09:01:51
>>394
UNICODE版のAPI使わない限り、たとえVISTAでもほとんどの処理が
影響を受けること知ってる?


396 :デフォルトの名無しさん:2007/02/28(水) 09:22:31
シンボリックリンクの展開すらMAX_PATHを超えられない

397 :デフォルトの名無しさん:2007/02/28(水) 09:50:33
これってzipで固めて配布してデスクトップとかに
てきとーに解凍して起動して気に入らなかったらそのフォルダを
ざくっと消せばオケっていう形はもう事実上無理ってこと?

一度起動したらそのフォルダとAppDataとかDocuments配下のアプリ名フォルダを
削除してくださいみたいなことが必要だよね。
おまけにAppDataは隠しフォルダからエクスプローラーの設定を
ごにょごにょしてくださいみたいな。

zip配布はもうやめだな。

398 :デフォルトの名無しさん:2007/02/28(水) 10:16:18
んなーこたーない

399 :デフォルトの名無しさん:2007/02/28(水) 12:31:59
>>296
優れた洋書教えて

400 :デフォルトの名無しさん:2007/02/28(水) 13:04:54
なんか混沌としてきてるんで、俺なりにまとめてみた。
俺はレジストリは嫌いなんで使ってないからファイルに関してのみ。
間違ってたら指摘してくれ。

(1) 新規開発アプリ・まじめなプログラマがVista対応でVer.Upする場合。
* exeにはすべてmanifestをつける(余計な仮想化等をさせない)
* ユーザーデータ・(書き換え要の)設定データはそれなりのディレクトリに置く
* プログラム更新はプログラムを分離し、manifestでUAC昇格させる
* アンインストール時に設定データ等をきれいにお掃除する

(2) 既存アプリを最低限の修正でVistaに対応させたい不真面目なプログラマの場合。
* アプリ.exeにはmanifestをつけ、余計なディレクトリ仮想化やUAC昇格がおこらないようにする
* インストーラ.exeはmanifestでUAC昇格させ、ユーザーデータ・(書き換え要の)設定データを置くディレクトリをインストーラでEveryone-modifyにしてしまう
* プログラム更新があるなら、プログラムのディレクトリもEveryone-modifyにしてしまう。

(3) 既存アプリを全く修正したくない物臭なプログラマの場合。
* ディレクトリの仮想化等でうまくいけば、それでオーケーとする
* ユーザーにProgram Filesでないディレクトリにインストールしてもらう
* ユーザーにディレクトリのセキュリティー設定を変えてもらう
* 「Vistaには対応していません」と言い切る

(4) ユーザーの立場の場合。
* 特に必要がなければVistaにしない
* アプリがVistaに対応してるか、供給元に確認する

ちなみに俺は(2)。
参考:mt.exe(Manifest Tool)で、再コンパイル・リンクなしに既存のexeにmanifestを追加できます。


401 :デフォルトの名無しさん:2007/02/28(水) 13:23:47
設定をサーバー側に置けばいいんだ

402 :デフォルトの名無しさん:2007/02/28(水) 13:53:14
>>397
> デスクトップとか
はユーザープロファイルの下に作られるから無問題。
インストーラがないのにわざわざProgram Filesに展開しようとしたときにのみ
問題が発生する。
個人的には制限ユーザー暮らしが長かったからProgram Filesに展開するというのは
想像の範囲外だったんだがWinXPでは十分あり得たのか
>>400
> 参考:mt.exe(Manifest Tool)で、再コンパイル・リンクなしに既存のexeにmanifestを
> 追加できます。
ただしVS2005にSP1を当てる前のmt.exeを使うと、MS06-075を当てていないWinXPで
とんでもないバグを踏むので要注意。どういうことになるかはWin板のSleipnirスレ
参照。VS2005SP1やWindows SDK付属のmt.exeならたぶん大丈夫。

403 :デフォルトの名無しさん:2007/02/28(水) 15:08:52
見覚えのある症状だと思ったらこれか
http://support.microsoft.com/default.aspx?scid=kb;ja;921337

404 :400:2007/02/28(水) 15:11:06
>>402
>ただしVS2005にSP1を当てる前のmt.exeを使うと、MS06-075を当てていないWinXPで
>とんでもないバグを踏むので要注意。どういうことになるかはWin板のSleipnirスレ
>参照。VS2005SP1やWindows SDK付属のmt.exeならたぶん大丈夫。
Thanks. 知らなんだ・・・・ 確認してみる。



107 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)