DelphiXE2でVirtualStoreにリダイレクトさせるには?

解決


 2012-11-14 16:42:37  No: 43376  IP: 192.*.*.*

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ファイルを作成する方法がありましたらご教授頂けますでしょうか。

よろしくお願い致します。

編集 削除
ん?  2012-11-14 17:26:00  No: 43377  IP: 192.*.*.*

リダイレクトはOSの機能ですので、プログラム側は関係ない気がします。
テキストエディタで開きっぱなしにしているとか、
プログラムの実行権限が違っているとかは間違いありませんか?

編集 削除
 2012-11-14 18:01:28  No: 43378  IP: 192.*.*.*

ファイルの開きっぱなしではありませんでした。
また、「管理者として実行」とした場合、どちらも(当然ですが)ProgramFiles下に出力されます。
「管理者権限なし」の場合にProgramFiles下に書けないのだから、Delphiのバージョンに関係なくVirtualStore下にリダイレクトされるものと思っていたのですが、うまくいかないです。

編集 削除
Mr.XRAY  2012-11-14 19:48:12  No: 43379  IP: 192.*.*.*

解決策ではありませんが,

>VirtualStore下にiniファイルを作成する方法がありましたら...

個人的には,VirtualStore下にファイルは置かない方がいいとは思いますが.どうでしょう.
ちなみに,64 bit のアプリケーションでは,この VirtualStore は使用されません.

編集 削除
KHE00221  2012-11-14 19:51:51  No: 43380  IP: 192.*.*.*

D6  はマニフェストが無いから
XE2 もランタムテーマを無効にすれば D6 と同じになる

編集 削除
 2012-11-14 20:37:17  No: 43381  IP: 192.*.*.*

お騒がせいたしました。
KHE00221さんのご指摘の通りでした。
ランタイムデータの設定は意識していましたが、設定をミスしていました。

皆様、ありがとうございました。

編集 削除