是否可以在另一个窗口内运行Windows应用程序(打开顶级窗口)?或者设置一个备用的“桌面”/假桌面,拥有该窗口?
我正在使用UI Automation来自动化测试应用程序。我想将测试中的应用程序放在一个沙盒中:桌面和应用程序之间的人工父窗口,或者伪桌面,第二个桌面等等。这个桌面(以及被测试的应用程序)不需要是可见的。< / p>
正在测试的应用程序的不同实例(在普通桌面或沙箱中)不应相互冲突(窗口名称/类别) - 被测试的应用程序可以安全地拥有多个实例...
我意识到这似乎是hackish,所以win32 hacks会受到欢迎。 :)
答案 0 :(得分:4)
您可以尝试使用CreateDesktop创建桌面,并在启动目标应用程序时在STARTUPINFO中传递其名称。
答案 1 :(得分:0)
如果您正在自动化测试应用程序,那么我猜您正在尝试为要测试的应用程序创建SandBox。这里有一个非常good library by Liu Yu另请参见:Create Sandbox C#和此:How to create a lightweight C code sandbox?