2008-10-30 7 views
4

Je dois écrire des données d'enregistrement (numéro d'ordinateur unique et code d'activation correspondant).Où puis-je écrire des données sur Windows Vista en utilisant un compte et être visible à partir de tous les autres comptes?

Le numéro d'ordinateur doit être visible de autres programmes et tous les comptes ({Admin | Non Administrateur} avec contrôle d'accès utilisateur se {On | Off})

Il est acceptable d'écrire le numéro d'ordinateur et Code d'activation uniquement à partir d'un compte Admin, mais il doit être lisible à partir de l'un des autres comptes.

Actuellement (et j'ai besoin de tester cela plus) il semble que si le CN et le code d'activation sont écrits avec UAC éteint puis lorsque l'utilisateur bascule UAC sur le numéro d'ordinateur n'est pas visible.

Répondre

3

Pendant l'installation, vous pouvez l'écrire dans le dossier d'installation de votre programme, car il ne sera probablement pas modifié (nécessite un accès en écriture) plus tard. Vous devriez toujours avoir un accès en lecture en tant qu'utilisateur standard. Sinon, comment fonctionnerait le programme? :)

Vous pouvez également utiliser le dossier All Users Application Data. Dans XP, cela devrait normalement correspondre à C:\Documents and Settings\All Users\Application Data\YourApp\. Je n'ai pas Vista devant moi, donc je ne peux pas vous donner l'emplacement exact pour le moment, mais cela devrait être une cartographie assez simple.

3

L'emplacement retourné par

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

C'est le même endroit que Joel a mentionné dans son message, mais cela est la bonne façon d'obtenir cette valeur (qui a changé les emplacements entre XP & Vista et peut changer encore).

(Ceci est, bien sûr, pour .NET. Pour Win32, vous souhaitez utiliser la fonction SHGetFolderPath avec CSIDL_COMMON_APPDATA)