3

我正在尝试以静默方式运行 CMD,但每次都出现错误。有人可以告诉我哪里出错了吗?

Dim myProcess As Process 
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden 
myProcess.StartInfo.CreateNoWindow = True 
myProcess.StartInfo.FileName = ("cmd.exe" & CmdStr) 
myProcess.Start() 

CmdStr 已经是一个字符串,可以在应用程序中执行我想要的某些事情。

4

1 回答 1

10

我想你的 cmdStr 是一个带有 CMD 参数的字符串。
如果是这样,您需要使用 StartInfo 的 Arguments 属性。
您会在 myProcess 变量上获得 Null 异常,因为它永远不会被 new 实例化。您可以创建一个 ProcessStartInfo var 以与静态 Process.Start 方法一起使用并将 UseShellExecute 设置为 False

Dim startInfo As New ProcessStartInfo("CMD.EXE")
startInfo.WindowStyle = ProcessWindowStyle.Hidden     
startInfo.CreateNoWindow = True 
startInfo.UseShellExecute = False
startInfo.Arguments = CmdStr
Process.Start(startInfo)  

或编辑您的代码以添加

myProcess = new Process() 

在使用 var myProcess 之前

于 2012-09-18T13:16:13.190 回答