3

仮想マシン上で定期的に実行することにより、ソフトウェアを検証する自動化された UI テストがあります。Windows 8 リリース プレビュー マシンをこのプールに追加して、自動テスト スクリプトを実行し、アプリが引き続き動作することを確認したいと考えています。

クリーンなスナップショットから仮想マシンを起動することで、テストが常にクリーンな状態で開始されるようにします。マシンが起動すると、スクリプトを起動するショートカットがスタート メニュー/スタートアップ フォルダに作成されます。

問題は、Windows 8 では、マシンの起動時に開始画面が表示され、開始画面がすべてをブロックするため、UI テストがアプリケーションとやり取りできないことです。彼らはマウスをクリックしようとして、ランダムな地下鉄アプリを誤って起動してしまい、すべてのテストが失敗します。

私は以前、これを Windows 8 コンシューマー プレビューで動作させていました。私たちのスクリプトは、起動時にIShellDispatch4.ToggleDesktopを呼び出します。これにより、開始画面が非表示になります。

リリース プレビューでは、これは機能しなくなりました。

私も試しました:

  • この記事に従って、explorer.exe へのショートカットを作成します。うまくいきません。

  • この Howtogeek articleに従って、エクスプローラー/ToggleDesktop を呼び出すスクリーンセーバーへのショートカットを作成します。動作しません (とにかく IShellDispatch4.ToggleDesktop を呼び出しているだけのようです)。

4

5 に答える 5

1

私がRTM版でやったことはこれでした:

ブートストラップ スクリプトが実行され、スタート メニューが全画面表示になると想定されます。次に、win32 SendInput を使用して DESKTOP と Return を入力します。

于 2012-11-29T20:58:31.193 に答える
1

既に VM ホストの API を使用して、スクリプトから仮想マシンを起動および停止するなどの操作を行っているようです。同じ API を使用してWindows+Dキーの組み合わせを VM に送信できますか? これでデスクトップが表示されます。

于 2012-06-01T12:03:17.077 に答える
0

@ マイケル・ビスビャーグ

やあ!Windows キーを押して離すと、デスクトップに直接移動する次のコードを使用することもできます。

Send("{LWINDOWN}{LWINUP}")

ジョナサン

于 2014-04-13T14:39:53.527 に答える
0

私たちの会社にも同じ問題があり解決策を見つけました。AutoIt を使用して、「デスクトップ」タイルをクリックするスクリプトを作成しました。次に、AutoIt を実行可能な exe に「コンパイル」しました。これを、それぞれのスタートアップ フォルダーにある仮想イメージにバンドルします。

自動コンパイラ

このスクリプトは次のコマンドを使用します。

MouseClick("left", x, y)

x と y は、デスクトップ タイル内の座標です。私たちの画像は常に白紙の状態 (あなたの画像のように) に戻るので、このタイルは常に同じ位置にあります。

于 2012-11-29T15:44:51.327 に答える
0

これは、あらゆる場所からのビットをコンパイルしたソリューションです。

アイデアは、'desktop' と入力してから Enter/Return ヒット (Orion のアイデア) を入力し、ログオンするたびにそれを実行する (参照記事のスケジュールされたタスクのアイデア) ことですが、カスタムの 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
于 2013-01-15T01:09:39.140 に答える