Bonjour,
Je fais une petite application qui doit consulter et écrire dans certaines clés de registre
par exemple :
Registry.LocalMachine, @"SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation", "Manufacturer
J'ai une erreur (Message = "La référence d'objet n'est pas définie à une instance d'un objet."), j'ai vérifié dans la base de registre et je n'ai pas vu d'erreur
Je dois aussi renommer sauvegarder des des fichiers et j'ai pas le droit dans les sous dossiers de C:\windows\system32
par exemple dans : C:\Windows\System32\OEM
Je lance mon application :
- normalement
- en tant qu'administrateur
- sous la session administrateur (la vraie)
et toujours pareil
Si vous avez une idée je suis preneur
procédure pour écrire dans la base de registre
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| public string EcritureKey(RegistryKey ruche, string cle, string valeur, string donnee)
{
cle = Convertion(cle);
valeur = Convertion(valeur);
donnee = Convertion(donnee);
string reponse = "";
if (!CleExiste(ruche, cle)) //la clé n'existe pas, la créer
{
ruche.CreateSubKey(cle);
//ruche = Registry.CurrentUser;
RegistryKey _key = ruche.OpenSubKey(cle, true);
_key.SetValue(valeur, donnee);
_key.Close();
ruche.Close();
}
else // écrit la donnée
{
RegistryKey _key = ruche.OpenSubKey(cle, true);
try
{
reponse = (string)_key.GetValue(cle).ToString();
}
catch
{
_key.SetValue(valeur, donnee);
if (reponse == donnee)
{ reponse = "Ecriture faite"; }
else
{ reponse = "Ecriture échouée"; }
}
_key.Close();
ruche.Close();
}
return reponse;
} |
gestion de fichier
1 2
| System.IO.File.Move(@"C:\Windows\System32\oem\SystemLogo.bmp", @"C:\Windows\System32\oem\SystemLogo_old.bmp");
logo.Save(@"C:\Windows\System32\OEM\SystemLogo.bmp"); |
Partager