任务:使用管理员帐户将文件从远程PC复制到远程PC
代码:
psi.FileName = "cmd.exe"
psi.Arguments = ParaStr
psi.UserName = StrUserID
psi.Password = ConvertToSecureString(txtAdminPassword.Text)
psi.Domain = StrDomain
psi.WindowStyle = ProcessWindowStyle.Normal
psi.UseShellExecute = False
Dim proc As New Process
proc.StartInfo = psi
proc.Start()
ParaStr = / k psexec.exe -h / user AdminUser \ SourceMachine cmd / c Copy \ sourcepc \ file1 \ destpc \ folder
所以当执行命令时,它会提示输入管理员密码,一旦验证,它就会复制文件并结束
这很好用
我想检查实际复制工作何时完成(文件大小未知,因此有时需要3/4小时)
我保持cmd窗口打开以查看进程是否结束,它将返回任务已完成或在命令提示符下失败的消息
如何在流程结束时检查VB?
答案 0 :(得分:2)
在控制台应用程序上,您可以设置Process Exit代码并在父调用进程上检查相同的内容,并根据退出代码确定它是否成功
you can return it from Main if you declare your Main method to return an int, or call Environment.Exit(code)
检查退出代码
p.StartInfo = new ProcessStartInfo("RegSvr32");
p.Start();
p.WaitForExit();
return p.ExitCode;
答案 1 :(得分:-1)
你尝试过这样的事吗?
过程完成后,您应该能够捕获StandardOutput
。这应该会给你成功/失败。然后是关于你想如何在你的VB应用程序中启动流程完成事件的过程。