假装不在 发表于 2008-10-9 19:19:17

【QTP 访问远程文件代码片】

Public FunctionLog_in(ip,user,pw)
   Dim oShell
   Set oShell = CreateObject ("WSCript.shell")
   oShell.runip
   Set oShell = Nothing
   wait (2)
   If Dialog("nativeclass:=#32770","index:=0").exist(1) Then
        Dialog("nativeclass:=#32770","index:=0").WinEdit("nativeclass:=edit","index:=1").setuser
        Dialog("nativeclass:=#32770","index:=0").WinEdit("nativeclass:=edit","index:=2").setpw
        Dialog("nativeclass:=#32770","index:=0").WinButton("nativeclass:=Button","index:=0").click
   End If
End Function

这个是远程登陆的代码片,要用的话,Log_in "\\192.168.1.1","admin","admin"
里面只做到了简单捕获对话框Dialog而已,如果有具体情况,还需要大家把这个片断去完善。
因为MSN群里的热心朋友问到这个问题,而采用的是sendkeys的方法,个人不推荐使用这个,所以写写普及下。

heqingbluesky 发表于 2008-10-10 11:08:53

LZ,有两个问题。

1.Set oShell = CreateObject ("WSCript.shell")好像有错。
应该是:Set oShell=Wscript.CreateObject ("WSCript.shell")

2.其次,好像不能在QTP中运行WSH,因为QTP没有封装相应的方法。所以也就无从用起描述性编程了的好处了。

假装不在 发表于 2008-10-10 19:14:28

谢谢楼上的回帖。
你和我说的这2个问题,都用了“好像”,很谦虚。哈哈
你打开QTP把代码粘贴进去,运行看看就可以了,谢谢。
1.Set oShell = CreateObject ("WSCript.shell")好像有错。
应该是:Set oShell=Wscript.CreateObject ("WSCript.shell")

2个写法都是可以的。

2.其次,好像不能在QTP中运行WSH,因为QTP没有封装相应的方法。所以也就无从用起描述性编程了的好处了。

QTP没封装但QTP支持VBS这点就足够了。还有最后一句话,我不是哪么理解你说的意思。

heqingbluesky 发表于 2008-10-13 14:26:34

其实不是谦虚,我也有很多不懂的地方。
对于QTP,如果这样写:Set oShell=Wscript.CreateObject ("WSCript.shell")
QTP会报错误信息的,
但是这样写:Set oShell=CreateObject ("WSCript.shell")
QTP就不会报错。

其次,把这段代码放到QTP中运行,还是给我一个报错信息:
General Run Error的消息框。(在运行oshell.run ip的时候)

Log_in "150.245.167.75","user","123456"

Public FunctionLog_in(ip,user,pw)
   Dim oShell
   Set oShell =CreateObject ("WSCript.shell")
   oShell.runip
   Set oShell = Nothing
   wait (2)
   If Dialog("nativeclass:=#32770","index:=0").exist(5) Then
      Dialog("nativeclass:=#32770","index:=0").WinEdit("nativeclass:=edit","index:=1").setuser
      Dialog("nativeclass:=#32770","index:=0").WinEdit("nativeclass:=edit","index:=2").setpw
      Dialog("nativeclass:=#32770","index:=0").WinButton("nativeclass:=Button","index:=0").click
   End If
End Function

假装不在 发表于 2008-10-13 22:24:00

因为你调用错了,写少了“\\”

heqingbluesky 发表于 2008-10-14 10:29:18

看来我犯了常识性的错误:( ,qtp的报错我有点看不懂了。

我们一般对于远程的机器的文件拷贝,例如Daily Build,一般使用systemutil.run方法调用。
不过两种方法都不错。

假装不在 发表于 2008-10-14 11:09:13

哈哈,人总会有犯错的时候。
页: [1]
查看完整版本: 【QTP 访问远程文件代码片】