2017-02-24 120 views
0

我想导入以前通过C#保存的注册表值。 每次导入时都会运行Regedit,但值不会更改。当以管理员身份运行时,我得到的唯一区别是UAC提示符不是提升时的注册表编辑器。 Regedit似乎仍然运行,但它似乎不是读取和导入.reg文件。C#注册表导入

Import: 
     { 

      if (openFileDialog1.ShowDialog() == DialogResult.OK) 
      { 

       string FullPath = openFileDialog1.FileName; 

       MessageBox.Show(Convert.ToString(FullPath)); 

       Process regeditProcess = Process.Start("regedit.exe", "/s" + FullPath); 
       regeditProcess.WaitForExit(); 
      } 



      return; 
     } 
+0

检查FULLPATH。我相信在/ s之后应该还有一个空格:“/ s” – Ethilium

回答

1

问题可能是如果FullPath中有空格。 相反的:

Process regeditProcess = Process.Start("regedit.exe", "/s" + FullPath); 

试试这个:

Process regeditProcess = Process.Start("regedit.exe", "/s \"" + FullPath + "\""); 
+1

不能用低代表投票 - 但这是答案。谢谢! –