我正在尝试从vb.net应用程序运行sysprep,即使确认路径和文件名正确,它仍在返回它找不到该文件的信息。我尝试使用process.start,将其声明为新进程,并声明与文件名分开的路径。这是我希望编写的代码,也许有人可以尝试一下,看看他们是否提出解决方案?
Private Sub btnsysp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsysp.Click
Dim P As New System.Diagnostics.Process()
P.StartInfo.UseShellExecute = True
P.StartInfo.WorkingDirectory = "C:\Windows\System32\sysprep\"
P.StartInfo.FileName = "sysprep.exe"
P.Start()
End Sub
我认为您只是偶然发现了http://msdn.microsoft.com/en-us/library/aa384187.aspx
%windir%\ System32目录为64位应用程序保留。创建64位版本的DLL时,大多数DLL文件名均未更改,因此32位版本的DLL存储在不同目录中。WOW64通过使用文件系统重定向器隐藏了这种差异。
发生的情况是您的启动请求(来自32位进程)被重定向到%windir%\SysWOW64\sysprep\sysprep.exe
。由于SysWOW64上没有此特定可执行文件的32位版本,因此启动失败。
绕过此问题的最简单方法是使用reference%windir%\SysNative\sysprep\sysprep.exe
而不是%windir%\System32\sysprep\sysprep.exe
您所拥有的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句