当尝试使用工具箱设置为Qt并且“挂钩到应用程序启动的子进程”来启动AUT时,我必须启动应用程序(这是一个启动进程来设置Qt的Windows应用程序窗口)使用Squish提供的dllpreload.exe附加到Qt窗口。这样做不会显示Windows控制台,只是启动Qt窗口。这成功地挂钩了Qt ......
设置testSettings.setWrappersForApplication("application", ("Windows", "Qt"))
或testSettings.setWrappersForApplication("application", ("Windows"))
时,它无法作为Qt窗口挂钩到Qt窗口,并且无法识别Qt组件。
是否有压力将Windows控制台识别为“Windows”并将Qt窗口识别为“Qt”?
答案 0 :(得分:0)
a Knowledge Base article中记录了连接到Qt应用程序的用例,该应用程序是本机Windows应用程序的子进程。最简单的方法是:
myqtapp.exe
改为同名,但在末尾添加下划线,即myqtapp_.exe
。dllpreload.exe
程序重命名为myqtapp.exe
。这样,你的Windows程序会在不知不觉中调用dllpreload.exe
,然后会从自己的文件名中推断出原始应用程序的文件名(它只会添加一个下划线)。
dllpreload.exe
程序不是一个完美的代理,因此可能是您的Windows应用程序注意到它没有与真正的AUT交互。在这种情况下,可能更容易修改Windows应用程序,以便它明确地将dllpreload.exe
预先添加到用于启动Qt应用程序的命令行。
您可以有条件地执行此操作,只有在通过Squish启动Windows应用程序时才会执行此操作。可以通过测试SQUISH_PREFIX
环境变量的存在来检测这种情况。