首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Hook压缩为具有Windows控制台和Qt窗口的AUT

将Hook压缩为具有Windows控制台和Qt窗口的AUT
EN

Stack Overflow用户
提问于 2016-07-05 12:22:21
回答 1查看 1.4K关注 0票数 0

当尝试启动一个AUT时,工具包设置为Qt,并且'Hook到由应用程序启动的子进程‘集合,我必须使用Squish提供的dllpreload.exe启动应用程序(这是一个启动进程来设置Qt窗口的windows应用程序)来连接Qt窗口。这样做并不会显示windows控制台,只会启动Qt窗口。这个钩子成功地连接到Qt ..。

当设置testSettings.setWrappersForApplication("application", ("Windows", "Qt"))testSettings.setWrappersForApplication("application", ("Windows"))时,它无法将Qt窗口作为Qt窗口挂钩,并且无法识别Qt组件。

到底有什么办法让squish将windows控制台识别为“Windows”,而将Qt窗口识别为“Qt”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-19 15:27:03

知识库文章中记录了连接到Qt应用程序的用例,Qt应用程序是本地Windows应用程序的一个子进程。解决这一问题的最简单方法是:

  1. 重命名Qt应用程序的原始可执行文件,例如myqtapp.exe,但在末尾添加下划线,即myqtapp_.exe
  2. 将随Squish附带的dllpreload.exe程序重命名为myqtapp.exe

这样,您的Windows程序就会不知不觉地调用dllpreload.exe,然后它将从它自己的文件名中推断出原始应用程序的文件名(它只是添加一个下划线)。

不过,dllpreload.exe程序并不是一个完美的代理,所以您的Windows应用程序可能注意到它没有与真正的AUT交互。在这种情况下,修改dllpreload.exe应用程序可能更容易,以便它将dllpreload.exe显式地添加到用于启动Qt应用程序的命令行中。

您可以有条件地这样做,只有在通过Squish启动Windows应用程序时才能这样做。可以通过测试是否存在SQUISH_PREFIX环境变量来检测这种情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38203351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档