2012-06-01 87 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

相關問題