如何从后面的代码访问rstrui.exe?

问题描述:

请告诉我如何从我的c#代码访问系统还原“rstrui.exe”。如何从后面的代码访问rstrui.exe?

我试过拨打C:\Windows\System32\rstrui.exe; 但它根本无法访问。

我需要调用此函数将我的控件重定向到系统还原。

感谢....

+2

你试过到目前为止什么确切的代码? – Arran

+0

你有什么尝试吗? –

+0

是的,我可以通过这种方式调用系统备份和恢复..... –

您可以访问C:使用以下属性\ Windows \ System32下:

Environment.SystemDirectory 

Environment.SystemDirectory Property

可以运行可执行文件使用下面的方法:

Process.Start(Path.Combine(Environment.SystemDirectory, "rstrui.exe")); 

Path.Combine Method

Process.Start Method

UPDATE >>>

唉唉......现在我看到你的问题。

当从64位Windows 7和Vista(也可能是Windows 8)上的32位代码访问System32文件夹时,Windows'巧妙地'将该部分请求路径更改为SysWow64。这就是为什么你可能有'找不到路径'的错误。为了解决这个问题,你可以使用以下命令:

Process.Start(@"C:\Windows\SysNative\rstrui.exe"); 

一个更完整的答案可能是:

if (Environment.Is64BitProcess) 
{ 
    Process.Start(Path.Combine(Environment.SystemDirectory, "rstrui.exe")); 
} 
else Process.Start("C:\\Windows\\sysnative\\rstrui.exe"); 
+0

它要求定义关键字** Combine **。 –

+0

我在'Path.Combine'的答案中添加了一个新链接。 – Sheridan

+0

谢谢,让我试试这个 –