Vbscript 有没有办法通过QTP接受UAC提示?

Vbscript 有没有办法通过QTP接受UAC提示?,vbscript,automated-tests,uac,qtp,gui-testing,Vbscript,Automated Tests,Uac,Qtp,Gui Testing,我创建了一个需要运行可执行文件(在本例中为卸载脚本)的自动测试。这会导致Windows 7显示一个用户帐户控制提示,在QTP测试继续之前需要接受该提示 目前,我不得不将UAC降低到“不要调暗我的桌面”级别,以便将对话框添加到对象存储库中。我尝试单击“是”按钮录制,但QTP没有注意到我的操作,因此我必须手动添加对象 即使如此,当我添加行对话框(“用户帐户控制”).WinButton(“Yes”)。单击,我从QTP收到未指定错误 编辑: 我还尝试使用下面的代码点击屏幕上的任意点(这里恰好有“是”按钮

我创建了一个需要运行可执行文件(在本例中为卸载脚本)的自动测试。这会导致Windows 7显示一个用户帐户控制提示,在QTP测试继续之前需要接受该提示

目前,我不得不将UAC降低到“不要调暗我的桌面”级别,以便将对话框添加到对象存储库中。我尝试单击“是”按钮录制,但QTP没有注意到我的操作,因此我必须手动添加对象

即使如此,当我添加行
对话框(“用户帐户控制”).WinButton(“Yes”)。单击
,我从QTP收到
未指定错误

编辑: 我还尝试使用下面的代码点击屏幕上的任意点(这里恰好有“是”按钮)

Set dr=CreateObject(“Mercury.deviceplay”)
鼠标点击1030550,鼠标左键
好消息是,光标正好落在“是”按钮上,不幸的是,单击不起作用


QTP有没有办法在不完全禁用UAC的情况下接受UAC提示?

我不知道QTP是什么,但问题是它试图单击不允许的按钮

Windows阻止应用程序以编程方式单击同意对话框。这样做是为了防止所谓的。此外,如果允许代码查看并单击UAC同意对话框,恶意软件可能会单击UAC提示本身

有一种机制允许程序声明它们需要能够驱动用户界面;允许软件查看并单击UAC对话框。这是一种严重的安全风险,应用程序需要:

  • 数字签名
  • 可以从程序文件运行
声明你需要权利 如果您要求QTP的开发人员更改其程序集清单;打开
**uiAccess=true**
选项:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 

    <!-- Disable Windows Vista UAC compatability heuristics -->
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="asInvoker" uiAccess="true"/>
            </requestedPrivileges>
        </security>
    </trustInfo> 
</assembly>

:

现在,大多数人并不真正理解这是为了什么,UAC清单通常只是一个复制/粘贴事件。但是远程桌面开发人员关注它是值得的。对于任何常规的软件,您通常都希望远离它——这是危险的,并且避开了一个重要的安全特性(UIPI)。但是,如果你正在远程处理桌面,它正是你想要的——你需要能够看到一切

事实上,如果不对应用程序进行数字签名,我们将不允许您进行设置,这已经够危险的了。默认情况下,还必须将其安装在安全位置(如程序文件)