2

我创建了一个需要使用 CMD 进程执行 EXE 文件的 Windows 服务。我使用了以下代码:

  Str = "C:\PCounter\Staff\account.exe CHARGE " & Name & " " & Amount & " TO" & Id
  Dim procStartInfo As New System.Diagnostics.ProcessStartInfo(Str)
  procStartInfo.RedirectStandardOutput = True
  procStartInfo.UseShellExecute = False
  procStartInfo.CreateNoWindow = True
  Dim proc As New System.Diagnostics.Process
  proc.StartInfo = procStartInfo
  proc.Start()
  proc.Dispose() 

但是上面的代码将返回

系统找不到指定的文件

我在 Windows 窗体上尝试了相同的代码,并且工作正常。为了确保路径正确,我在与 EXE 文件相同的位置添加了一个文本文件,并将文本文件的内容加载到服务中。它工作正常。

我想不出别的了;如果您能在这方面帮助我,我将不胜感激。

4

2 回答 2

3

ProcessStartInfo 有两个属性。一个用于运行可执行文件,另一个用于传递给可执行文件的参数。Arguments 属性的语义与命令行完全相同。

您不能将参数包含在与可执行文件相同的属性中。他们必须分开。

于 2012-12-19T19:22:05.120 回答
0

创建服务:

sc create Vm-Symantec04 binPath= "\"C:\App32\VMware\VMware Workstation\vmrun.exe\" -T ws start \"D:\VM\Sym04\Sym04.vmx\" nogui" depend= "VMAuthdService/VMnetDHCP/VMUSBArbService/VMware NAT Service"  start= auto

删除服务:

sc delete Vm-Symantec04
于 2012-12-30T20:00:41.480 回答