如何使用vbscript关闭HP UFT的对象间谍(12.02)

时间:2016-05-28 11:48:35

标签: object vbscript hp-uft spy

我们正在使用UFT进行自动化测试,并拥有自己的框架来调用Uft并加载脚本。 但如果偶然的对象间谍打开UFT会给出错误“程序正在等待另一个用户......” 任何人都可以使用vb脚本命令帮助关闭对象间谍(如果它是打开的)

3 个答案:

答案 0 :(得分:0)

Object Spy是UFT.exe进程的一部分 - 也许您可以在调用它之前使用WMI查询检查它是否存在,如果是这样就终止它?

Option Explicit
Dim objWMIService, objProcess, colProcess
Dim strComputer, strProcessKill 
strComputer = "."
strProcessKill = "'UFT.exe'" 

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colProcess = objWMIService.ExecQuery("Select * from Win32_Process Where Name = " & strProcessKill )

For Each objProcess in colProcess
    objProcess.Terminate()
Next 
WScript.Echo "Just killed process " & strProcessKill & " on " & strComputer

或者你是说你以编程方式打开UFT并且Object Spy以某种方式自行打开?

答案 1 :(得分:0)

ObjectSpy既不会作为单独的进程运行,也不会作为UFT的子进程运行。您不能以编程方式单独终止或关闭ObjectSpy。您应该关闭/终止UFT以关闭ObjectSpy。正如Dave所提到的,你可以使用他的脚本来关闭UFT,或者你可以跳过执行,因为UFT已经打开了。选择是你的。

答案 2 :(得分:0)

解决方案是在使用进程号激活它后向UFT发送一个转义键:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process", , 48)
appid = 0
For Each objItem In colItems
    If objItem.Name = "UFT.exe" Then
        'Get UFT process Id
        appid = objItem.ProcessId
        'Activate UFT
        AppActivate appid
        'Send Escape key on UFT
        SendKeys "{ESC}"
        'Exit from for statement
        Exit For
    End If
Next

适用于UFT12.02和UFT12.54。