2016-12-02 32 views
0

IEを4つのタブで開き、全画面に移動してタブが切り替わるとすぐにページを再読み込みするスクリプトを作りたいと思います。Powershell SendKeys F5がIEの間違ったタブに送信されました

add-type -AssemblyName System.Windows.Forms  
$ie = New-Object -ComObject "InternetExplorer.Application" 
$ie.Navigate("http://www.microsoft.com") 
$ie.Navigate2("http://www.google.com" , 2048) 
$ie.Navigate2("http://www.outlook.com" , 2048) 
$ie.Navigate2("http://www.vice.com" , 2048) 
$ie.Visible = $true 
[System.Windows.Forms.SendKeys]::SendWait("{F11}{ENTER}") 

do 
{ 
start-sleep -Milliseconds 4000 
[System.Windows.Forms.SendKeys]::SendWait("{F5}{ENTER}") 
[System.Windows.Forms.SendKeys]::SendWait('^{TAB}') 
[System.Windows.Forms.SendKeys]::SendWait("{F5}{ENTER}") 
} 
While ($i -ne 0) 

この現在のスクリプトでは、ブラウザとタブが開き、タブ間も切り替わります。問題は、たとえば、Googleに切り替えると、MicrosoftはGoogleの代わりに更新されます。

もう1つの問題は、フルスクリーン表示にならないということです。コマンドは間違った場所にありますか?

PS:これは私の最初のPSスクリプト

+0

をなぜあなたは '' '' {F11} 'と' {F5}後{ENTER}を送っていますか? –

+0

@ThorstenDittmar分かりません。私はすべてをコピーしました...私はENTERなしで試してみます –

+0

これはあなたの問題を解決するとは言いませんが、これを手動で行うとどうなりますか? –

答えて

0

である私は次のことを試していないが、あなたのコードを見てから、奇妙ないくつかあります:

  1. はIEを示す間には休止がありませんそれをフルスクリーンにしようとしています。私はそれを追加します。
  2. あなたは理由なしで{ENTER}を送信しています。
  3. ループでは、まず現在のタブを更新してからタブを切り替え、新しいタブを更新します。どうして?

次のように私は、コードを変更したい:

add-type -AssemblyName System.Windows.Forms  
$ie = New-Object -ComObject "InternetExplorer.Application" 
$ie.Navigate("http://www.microsoft.com") 
$ie.Navigate2("http://www.google.com" , 2048) 
$ie.Navigate2("http://www.outlook.com" , 2048) 
$ie.Navigate2("http://www.vice.com" , 2048) 
$ie.Visible = $true 

start-sleep -Milliseconds 1000 
[System.Windows.Forms.SendKeys]::SendWait("{F11}") 

do 
{ 
    start-sleep -Milliseconds 4000 
    [System.Windows.Forms.SendKeys]::SendWait('^{TAB}') 
    start-sleep -Milliseconds 100 
    [System.Windows.Forms.SendKeys]::SendWait("{F5}") 
} 
While ($i -ne 0) 
+0

私が言ったように、これは私の最初のスクリプトなので何が間違っているのか分からない。それを修正するためにありがとう。さっぱりしています。しかし、それはまだ全画面表示にはなりません。さらに、私はスクリプトを実行した後にIEをクリックしなければなりません。スクリプトは、それが開いたIEウィンドウで実行する必要があることを自動的に知る方法はありますか? –

+0

Hm。多分この質問/回答はあなたを助けるでしょう:http://stackoverflow.com/questions/27282919/focus-ie-window-in-powershell。また、COM-Interfaceをチェックして、 'SendWait'のすべてをメソッド呼び出しで置き換えることができるかどうかを調べることができます。また、たとえばページのロードが完了したときなどのイベントもあります。これにより、全体のパフォーマンスが向上する可能性があります。ドキュメントは次のとおりです。https://msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx –

関連する問題