2012-06-01 89 views
3

我们有自动化的UI测试,通过定期在虚拟机上运行来验证我们的软件。 我想添加一些Windows 8发布预览机器到这个池,所以我们可以运行我们的自动化测试脚本,并确保我们的应用程序继续工作。以编程方式关闭Windows 8的启动屏幕

我们确保我们的测试总是从一个干净的快照启动了虚拟机改过自新。当机器启动时,他们在启动脚本的启动菜单/启动文件夹中有一个快捷方式。

的问题是,在Windows 8中,当机器启动,我们的UI测试不能与应用程序,因为启动画面块的一切交互的开始画面显示。他们尝试点击鼠标,最终偶然发布随机地铁应用程序,所有测试都失败。

我以前有这个在windows下工作8消费者预览。我们的脚本在启动时会调用IShellDispatch4.ToggleDesktop,这会导致启动屏幕隐藏。

在发布预览版中,此功能不再有效。

我也试过:

  • 创建一个快捷方式到EXPLORER.EXE,as per this article。它不起作用。

  • 创建快捷方式需要将呼叫资源管理器/ ToggleDesktop按照this Howtogeek article屏幕保护程序。它不起作用(看起来好像可能只是调用IShellDispatch4.ToggleDesktop)。

回答

1

听起来好像您已经在使用虚拟机主机的API来执行脚本中的启动和停止虚拟机。您可以使用相同的API将的Windows + d组合键发送到虚拟机?这将显示桌面。

0

我们在我们公司有同样的问题,我们只是找到了解决方案。我们采取了AutoIt并制作了一个脚本,点击“桌面”图块。然后,我们将AutoIt'编译'为一个可执行的exe文件,我们将其与我们的虚拟映像绑定在各自的启动文件夹中。

Autoit Compiler

我们的脚本使用命令:

MouseClick("left", x, y) 

其中X和Y是在台式机砖内的坐标。我们的图像总是回复到一个干净的石板(像你的),所以这个瓷砖总是在相同的位置。

1

我最终什么事在RTM版本做的是:

引导程序脚本运行,并假设在开始菜单将接管整个屏幕。然后,我们使用Win32 SendInput键入déS K'牛逼ØP和返回

0

这里有一个解决方案,来自世界各地的编译位。

这个想法是,我们想输入'桌面',然后输入/返回命中(猎户座的想法),并在每次登录(从引用文章计划任务的想法),但避免使用自定义win32二进制文件。 我的解决方案是使用PowerShell来避免win32二进制文件。

保存以下PS脚本在C:\ sendkeys.ps1:

[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms") 
[System.Windows.Forms.SendKeys]::SendWait("desktop{ENTER}") 

然后创建在其上使用以下参数启动Powershell的每个日志计划任务运行:

powershell -executionpolicy bypass -nologo -file c:\sendkeys.ps1 
0

@ Michael Bisbjerg

嗨!您也可以使用此代码,按下并释放Windows键,直接送你到桌面:

Send("{LWINDOWN}{LWINUP}") 

乔纳森

+0

是这个答案意味着是另一种答案评论? – CodeCamper

相关问题