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