达人速进:启用虚拟桌面的情况下QTP的使用
我们公司的产品属于安全应用方面的产品,安全性要求比较高,现在就加入了虚拟桌面的支持,可这样在使用QTP的过程中发现:虚拟桌面一起来,QTP就录不到启用后的一些对应操作了。我是新手,不知道这个问题如何解决,期待大家的帮助!谢谢[ 本帖最后由 z93620104 于 2008-11-12 11:29 编辑 ] 你说的多桌面是否是这样生成的桌面?
::SECURITY_ATTRIBUTES sa;
sa.bInheritHandle = TRUE;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
HDESK hD1 = CreateDesktop("w", NULL,
NULL,0,MAXIMUM_ALLOWED,
NULL);
::STARTUPINFO sui;
:ROCESS_INFORMATION pi;
::ZeroMemory ((PVOID)&sui, sizeof(sui));
sui.cb = sizeof (sui);
sui.lpDesktop = _T("w");
::CreateProcess (NULL,"explorer",NULL,NULL,TRUE,
CREATE_DEFAULT_ERROR_MODE|CREATE_SEPARATE_WOW_VDM,NULL,NULL,&sui,&pi);
HDESK hD2 = GetThreadDesktop(GetCurrentThreadId());
::SwitchDesktop(hD1);
::Sleep(6000);
::SwitchDesktop(hD2); 你的是多桌面,是吗?我说的是虚拟桌面,也就是安全桌面,比如说进行登陆操作的时候启用了安全桌面,那么这时候你就只能对登陆框的输入进行密码输入的操作,绝大部分其他操作都无法进行,包括窗口监视 添加虚拟对象的办法行得通么
或是更改录制模式
回复 3# 的帖子
如果是像windows登录窗口那样的安全性,那就很困难了。不过windows提供了无人值守脚本饶过去。
你需要询问你公司的DEV能否写一个service之类的在此安全窗口启动前执行,或者直接hook/Inject到此安全窗口上。
不过我想,以上设想是很难的,因为你公司产品是安全产品,如果能的话,就已经证明了它的失效。可以让你公司的DEV提供类似微软解决方案的接口。
[ 本帖最后由 xiaoshancom 于 2008-11-12 18:13 编辑 ]
页:
[1]