2013-02-08 4 views
2

J'ai un problème. J'exécute le code comme ci-dessous. après que j'ai regardé le fichier regedit, le fichier "test.reg" n'a pas ajouté. Que pensez-vous du problèmeExécution du fichier * .reg

contenu

du fichier regedit est:

REGEDIT4 

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\efe] 

"key1"="value" 
"key2"="value2" 

le code est:

static void Main() 
    { 
     Process regeditProcess = Process.Start("regedit.exe", "/s " + @"D:\Projects\efe\efe\bin\Debug\test.reg"); 
     regeditProcess.WaitForExit(); 

     Console.WriteLine("Press any key to continue."); 
     Console.ReadKey(); 
    } 

merci pour vos conseils ...

+1

. Si oui, essayez de placer le fichier reg dans la racine de votre application et remplacez D: \ ... par test.reg uniquement. –

+0

Vous devez accéder au registre en tant qu'administrateur. Exécutez-vous VS en tant qu'administrateur? Avez-vous des exceptions non saisies? –

+0

je n'ai pas eu d'exception.et je suis sûr de l'administration sur regedit. Je l'ai –

Répondre

3

Si vous avez droits administratifs cela devrait fonctionner sinon vous pourriez essayer de créer des clés de registre à partir de C# directement:

Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"Software\Wow6432Node\efe"); 
     Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"Software\Wow6432Node\efe",true).SetValue("key1", "value", Microsoft.Win32.RegistryValueKind.String); 

J'ai tapé le code de la tête alors peut-être que vous auriez à faire quelques changements. Et pour cela, vous devez également avoir des droits d'administration sur votre application. Etes-vous sûr que votre application dispose de droits d'administrateur?

+0

J'ai essayé le votre code mais j'obtiens l'exception. et l'exception est: "Le paramètre est incorrect." sur "Registry.LocalMachine.CreateSubKey (@" HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ efe ");" –

+0

J'ai modifié le code maintenant, maintenant cela fonctionne. –

+0

une autre exception. l'exception est: "Impossible d'écrire dans la clé de registre." sur ce "Microsoft.Win32.Registry.LocalMachine.OpenSubKey (@" Software \ Wow6432Node \ efe "). SetValue (" key1 "," value ", Microsoft.Win32.RegistryValueKind.String);" –