在Windows服务上运行CMD命令

时间:2012-12-19 19:13:04

标签: vb.net process windows-services cmd

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

  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() 

但是上面的代码会返回“系统找不到指定的文件”。

我在widows表单上尝试了相同的代码,它的工作正常,也是为了确保路径正确我在EXE文件的同一位置添加了一个文本文件,并在服务中加载了文本文件的内容,它工作正常。

我想不出别的什么,如果你可以帮助我,我真的很感激。 谢谢,

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分: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服务”start = auto

删除服务:

sc删除Vm-Symantec04