Você provavelmente está correndo para uma parte dos recursos do UAC do Vista chamado Loja Virtual . Aqui está um trecho do artigo:
When an application writes to a system location only writeable by administrators, Windows then writes all subsequent file operations to a user-specific path under the Virtual Store directory, which is located at %LOCALAPPDATA%\VirtualStore. Later, when the application reads back this file, the computer will provide the one in the Virtual Store. Because the Windows security infrastructure processes the virtualization without the application’s assistance, the application believes it was able to successfully read and write directly to Program Files. The transparency of file virtualization enables applications to perceive that they are writing and reading from the protected resource, when in fact they are accessing the virtualized version.
Sua inscrição está sendo executada em um contexto não elevado (não administrativo). Portanto, quando ele tenta abrir o arquivo na pasta Arquivos de Programas, essa solicitação é redirecionada para o local do Armazenamento Virtual de suas contas de usuário de forma transparente. Sua cópia do TextPad é provavelmente executada em um contexto elevado e, por isso, está vendo o arquivo que está na pasta real Arquivos de Programas.
Se este é o seu código que você pode alterar a funcionalidade e deseja que os usuários possam usá-lo sem ser executado como administrador, você deve alterar o local de armazenamento dos arquivos de configuração em algum lugar da pasta ApplicationData do usuário. pertence. Escrever configurações em um arquivo de configuração armazenado na pasta de instalação do aplicativo é altamente desencorajado nos dias de hoje. Se você realmente tem configurações que devem ser aplicadas a todos os usuários da máquina, você deve gravá-las na pasta All Users Application Data. E mesmo assim, você ainda terá que executar o aplicativo em um contexto Elevado por padrão, a menos que você conceda explicitamente ao grupo de usuários acesso de gravação à sua pasta.
Apenas mantenha este mantra na sua cabeça enquanto você escreve software para o Vista e além. "Os usuários só podem escrever no perfil ... Os usuários só podem escrever no perfil"