在另一个窗口中运行Windows应用程序

时间:2012-03-09 21:12:14

标签: windows winapi ui-automation

是否可以在另一个窗口内运行Windows应用程序(打开顶级窗口)?或者设置一个备用的“桌面”/假桌面,拥有该窗口?

我正在使用UI Automation来自动化测试应用程序。我想将测试中的应用程序放在一个沙盒中:桌面和应用程序之间的人工父窗口,或者伪桌面,第二个桌面等等。这个桌面(以及被测试的应用程序)不需要是可见的。< / p>

正在测试的应用程序的不同实例(在普通桌面或沙箱中)不应相互冲突(窗口名称/类别) - 被测试的应用程序可以安全地拥有多个实例...

我意识到这似乎是hackish,所以win32 hacks会受到欢迎。 :)

2 个答案:

答案 0 :(得分:4)

您可以尝试使用CreateDesktop创建桌面,并在启动目标应用程序时在STARTUPINFO中传递其名称。

答案 1 :(得分:0)

如果您正在自动化测试应用程序,那么我猜您正在尝试为要测试的应用程序创建SandBox。这里有一个非常good library by Liu Yu另请参见:Create Sandbox C#和此:How to create a lightweight C code sandbox?