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

解決


 2012-11-14 16:42:37  No: 43376

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

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


 2012-11-14 18:01:28  No: 43378

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


Mr.XRAY  2012-11-14 19:48:12  No: 43379

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

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

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


KHE00221  2012-11-14 19:51:51  No: 43380

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


 2012-11-14 20:37:17  No: 43381

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

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


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加