La cosa più importante che è cambiata tra Windows XP e Windows Vista/7 è l'introduzione dell'UAC, il che significa che gli utenti, anche se creati come amministratori, non hanno normalmente accesso in lettura/scrittura a posizioni "importanti" come il %programfiles%
(Di solito C:\Program Files
o C:\Program Files (x86)
) directory. Questo è il motivo per cui la tua applicazione funziona su Windows XP e non su Windows Vista.
Devi memorizzare i tuoi DATI nel %programdata%
directory (che di solito è C:\ProgramData
) se i dati sono condivisi tra utenti sulla macchina o %appdata%
(che di solito è C:\Users\USERNAME_GOES_HERE\AppData\Roaming
) se è specifico per un determinato utente. Ora non incontrerai più il problema di non essere in grado di scrivere sul file.
Il motivo è che memorizzando i dati nella directory di installazione dei programmi, stavi facendo la cosa sbagliata . Windows non ti ha impedito di farlo in precedenza, ma è stato ampiamente documentato che %programfiles%
non era il luogo appropriato per archiviare i dati.