Delphi5といいますが実行時の挙動が異なり悩んでいます。
UAC対策として、保存するフォルダは全て
「CSIDL_COMMON_APPDATA」
で得たフォルダを使用しています。
しかし実行時の状況によって別のフォルダが使われてしまうため
正常にデバッグできません
CSIDL_COMMON_APPDATAが示す値は固定でした。
現象としては隠しフォルダですが「CSIDL_COMMON_APPDATA」に該当する
フォルダを開いて該当するファイルをメモ帳で書き換えても
読み込むときは、その場所ではないので反映されません。
Delphiデバッグ環境からの実行:正常
exeを管理者権限で実行:正常
exeを通常の権限で実行:異常
この現象は
WindowsXPでは現象が発生しません
Windows7では現象が発生します。
ちょっとDelphiの質問とは離れているのですが
よろしくお願いします。
CSIDL_COMMON_APPDATAってC:\ProgramDataですよね?ここって管理者じゃないと書けなくないですか?
「All Users 用の更新対象データを無造作に設置しない」
http://dsas.blog.klab.org/archives/51108671.html#allusers
ン
ん、「テモノトプテマヘヘマポチミミトチヤチが示す値は固定」なのに「別のフォルダが使われる」ってどういうこと?
具体的にどういうコードで何をしているの?
等々不明点はありますが、何となくヨから導入されたヲサニヲサヨヲサの影響のように聞こえますね。
「ヨモ」で検索すれば色々情報が見つかると思いますが、簡単に説明すると
・ウイアプリケーションから、書き込み権限のない場所に書き込もうとすると
マモが気をきかせて、誰でも書き込める「ヨモ」にリダイレクトする。
・ナなどのカエアプリケーションからだと、ヨモへのリダイレクトは起きない。
普通に元の場所に読み書きするので、結果的にウイアプリとは別のファイルを見ていることになる。
この問題が起きるのは、書き込み権限がないところに書き込もうとしているからなので
別の場所を検討してみてはどうでしょうか。
例えば以下の説明を見ると……
ヲサゲーム開発者向けのユーザーヲサアカウント制御
ヲサコッッョョッュッッイーカイケオィスョクオゥョ
テモノトプテマヘヘマポチミミトチヤチに書き込めるのは、管理者かファイルの作成者だけですね。
権限の昇格なしで書き込める場所としてはテモノトプフマテチプチミミトチヤチあたりの方がいいんじゃないでしょうか。
スススススススススススススススススススススススススススススススススススススススス
ニコ
トコ イーアエッアイッイイィ月ゥ アウコエキコウカ シ スュアセシ上級者セ シッニセシノヘヌ ス「コッッョョョッッウョ「 ス「ー「セ 書込者ノト:ロ 」。ァ」。 ン
モコ
ユチテに関してですが
検索して出てきたいくつがのサイトが採用していた方法が
テモノトプテマヘヘマポチミミトチヤチを使うやりかただったのでそれを採用していました
しかし通りすがりヲサさんが指摘されたサイトのように
ここのチヲサユに置くべきでは無いんですねぇ
さんへ
読み書きするファイルは
管理者権限でも、非管理者権限でも
テコワミトワ自作アプリ名ワョ
を「モネヌニミ」で取得できるのですが
実際に読み書きされる場所は違うようです。
ユーザーの切り替えは一切ないので
テモノトプフマテチプチミミトチヤチで試してみます。
ありがとうございました。
インストーラーからの作り直しなので修正に時間がかかるのですが
起きている現象と指摘された内容が一致しているので
これで解決とさせていただきます。
ありがとうございました。
ツイート | ![]() |