WindowsXPとWindowsVista/ 7の間で変わった大きな点は、UACの導入です。つまり、ユーザーは、管理者として作成されたとしても、%programfiles% (通常、C:\Program Files またはC:\Program Files (x86) )ディレクトリ。これが、アプリケーションがWindowsVistaではなくWindowsXPで動作する理由です。
データを保存する必要があります %programdata%内 ディレクトリ(通常はC:\ProgramData )データがマシン上のユーザー間で共有されている場合、または%appdata% (通常はC:\Users\USERNAME_GOES_HERE\AppData\Roaming )特定のユーザーに固有の場合。これで、ファイルに書き込めないという問題は発生しなくなります。
この理由は、プログラムのインストールディレクトリにデータを保存することで、間違ったことをしているためです。 。 Windowsは以前はこれをやめませんでしたが、%programfiles%はかなり広く文書化されていました データを保存するのに適切な場所ではありませんでした。