Vistaにてアプリと同じ場所にiniファイルを出力する、以下のようなプログラムをProgramFiles以下に配置しています。
FileName := ExtractFileDir(Application.ExeName) + '\hoge.ini';
IniFile := TIniFile.Create(FileName);
IniFile.WriteString('AAA', 'BBB', 'CCC');
FreeAndNil(IniFile);
◆管理者権限なし・Delphi6で作成の場合
VirtualStore下にiniファイルが作成されます。
◆管理者権限なし・DelphiXE2で作成の場合
「ProgramFiles...\hoge.iniに書き込めません」のエラー。
・DelphiXE2でリダイレクトされないのは仕様でしょうか?
・DelphiXE2でもVirtualStore下にiniファイルを作成する方法がありましたらご教授頂けますでしょうか。
よろしくお願い致します。
リダイレクトはOSの機能ですので、プログラム側は関係ない気がします。
テキストエディタで開きっぱなしにしているとか、
プログラムの実行権限が違っているとかは間違いありませんか?
ファイルの開きっぱなしではありませんでした。
また、「管理者として実行」とした場合、どちらも(当然ですが)ProgramFiles下に出力されます。
「管理者権限なし」の場合にProgramFiles下に書けないのだから、Delphiのバージョンに関係なくVirtualStore下にリダイレクトされるものと思っていたのですが、うまくいかないです。
解決策ではありませんが,
>VirtualStore下にiniファイルを作成する方法がありましたら...
個人的には,VirtualStore下にファイルは置かない方がいいとは思いますが.どうでしょう.
ちなみに,64 bit のアプリケーションでは,この VirtualStore は使用されません.
D6 はマニフェストが無いから
XE2 もランタムテーマを無効にすれば D6 と同じになる
お騒がせいたしました。
KHE00221さんのご指摘の通りでした。
ランタイムデータの設定は意識していましたが、設定をミスしていました。
皆様、ありがとうございました。
ツイート | ![]() |