我创建了一个需要使用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文件的同一位置添加了一个文本文件,并在服务中加载了文本文件的内容,它工作正常。
我想不出别的什么,如果你可以帮助我,我真的很感激。 谢谢,
答案 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