0

任务:使用管理员帐户将文件从远程计算机复制到远程计算机

代码 :

    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 检查?

4

2 回答 2

2

在控制台应用程序上,您可以设置进程退出代码并在父调用进程上检查相同的内容,并根据退出代码确定它是否成功

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;
于 2013-02-05T17:10:30.527 回答
-1

你有没有尝试过这样的事情?

http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/6dca867b-0881-4ff9-b336-d03761df0377

StandardOutput一旦过程完成,您应该能够捕获。那应该给你成功/失败。然后就是关于如何在启动进程的 VB 应用程序中处理进程完成事件的全部内容。

于 2013-02-05T18:16:36.907 回答