Foxtable(狐表)用户栏目专家坐堂 → 请问shell函数和Process在建立共享连接时的区别


  共有2017人关注过本帖树形打印复制链接

主题:请问shell函数和Process在建立共享连接时的区别

帅哥哟,离线,有人找我吗?
九易六
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1800 威望:0 精华:1 注册:2009/3/16 14:05:00
请问shell函数和Process在建立共享连接时的区别  发帖心情 Post By:2017/6/20 14:09:00 [显示全部帖子]

我看到论坛上大家关于局域网建立共享连接的问题,有如下几种代码编写方式:

第一种:
shell("net use \\192.168.44.202\e TBFCfs.2109 /user:Administrator",0)

第二种:
Shell("cmd.exe /c /q net use \\192.168.44.202\e TBFCfs.2109 /user:Administrator")

第三种:
Dim p As new Process()
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.UseShellExecute = False '关闭Shell的使用
p.StartInfo.RedirectStandardInput = True '重定向标准输入
p.StartInfo.RedirectStandardOutput = True '重定向标准输出
p.StartInfo.RedirectStandardError = True '重定向错误输出
p.StartInfo.CreateNoWindow = True '设置不显示窗口
p.Start()
p.StandardInput.WriteLine( "net use  \\192.168.44.202\ TBFCfs.2109 /user:Administrator")
p.StandardInput.WriteLine("exit")

请问这几种编写方式有什么优缺点?
我想用来建立一个到局域网升级文件夹的共享连接。Foxtable当中,是不是要等这个命令执行完毕之后,才会顺序执行后面的Syscmd.Project.Update命令?
因为我发布之后的项目,有的客户端可以正常升级,有的客户端会提示异常,不知道是不是这个语句编写的问题。

 回到顶部
帅哥哟,离线,有人找我吗?
九易六
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1800 威望:0 精华:1 注册:2009/3/16 14:05:00
  发帖心情 Post By:2017/6/20 15:33:00 [显示全部帖子]

Dim p As new Process()
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.UseShellExecute = False '关闭Shell的使用
p.StartInfo.RedirectStandardInput = True '重定向标准输入
p.StartInfo.RedirectStandardOutput = True '重定向标准输出
p.StartInfo.RedirectStandardError = True '重定向错误输出
p.StartInfo.CreateNoWindow = True '设置不显示窗口
p.Start()
p.StandardInput.WriteLine( "net use  \\192.168.44.202\ TBFCfs.2109 /user:Administrator")
p.StandardInput.WriteLine("exit")

现在这种写法,就是等待执行完成之后,再执行后续代码的吗?

 回到顶部
帅哥哟,离线,有人找我吗?
九易六
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1800 威望:0 精华:1 注册:2009/3/16 14:05:00
  发帖心情 Post By:2017/6/21 10:04:00 [显示全部帖子]

再进一步请问,我想捕获错误,就是当共享连接无法建立的时候,能执行我指定的代码,怎么捕获呢?
我将  p.StartInfo.RedirectStandardError = True '重定向错误输出  这一句注释掉,也无法捕获错误。应当怎么做才可以呢?

 回到顶部