web-dev-qa-db-ja.com

Windowsで2つのアプリケーションを自動的に切り替えるアプリケーション

コンピューターがタイマーで2つの異なるアプリケーション間で切り替わる(フォーカスが移る)アプリケーションがありますか?これはWindows 7用です。

顧客に公開する画面に必要です。画面で、たとえば30秒ごとに2つの異なるアプリケーションを切り替えたいと思います。このような単純な何かが存在しなければならない最近の顧客に面したモニターが存在する十分な企業があると思います!

4
OverloadUT

はい、それは AutoIt と呼ばれます。

次のようなものを使用します。

While 1 ;loop indefinitely
    WinActivate("notepad","") ;give focus to notepad
    Sleep(30000) ;sleep 30 seconds
    WinActivate("wordpad","") ;give focus to wordpad
    Sleep(30000) ;sleep 30 seconds
WEnd

WinActivate()は、タイトルが完全に一致するか最も近いウィンドウにフォーカスを与えます。一致するタイトルが2つある場合、最後にアクティブ化されたタイトルにフォーカスを与えます。 Sleep()はミリ秒単位なので、30000は30秒です。

10
MaQleod
4
Sebastien

Windowsがそのままで実行できるのに、なぜAutoItなどのプログラムをインストールするのですか?

以下をauto_switch.vbsというファイルに保存します。

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WScript.Sleep 30000
    WshShell.SendKeys("%{TAB}")
Loop

30000を、Alt + Tabキーを押す間隔のミリ秒数(30000 = 30秒)に変更します。それをダブルクリックして実行を開始します。

停止したい場合は、「wscript」と呼ばれるプロセスを強制終了する必要があります。

明示的に名前が付けられたプログラムを切り替える場合、このコードは30秒ごとに「受信トレイ-Microsoft Outlook」と「Firefox」を切り替えます。

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WScript.Sleep 30000
    WshShell.AppActivate("Inbox - Microsoft Outlook")
    ' WshShell.SendKeys "% r"
    WScript.Sleep 30000
    WshShell.AppActivate("Firefox")
    ' WshShell.SendKeys "% r"
Loop

上記の例のアプリケーションが最小化されている場合は、アクティブ化された後でも最小化されたままになることに注意してください。

ウィンドウも復元するには、'の前にあるWshShell.SendKeysを削除します。これにより、スクリプトがウィンドウでアクティブになり、すぐに復元キーの組み合わせが送信されます Alt+SpaceBar、 r。英語版以外のWindowsを使用している場合は、このショートカットを変更する必要があるかもしれません。

3
Richard

お客様と画面/アプリケーションの間に相互作用がない場合は、プログラムのスクリーンショットを撮ってから、30秒のタイマーと無限の繰り返しでシンプルなスライドショーを作成する必要があります。

一般に、広告目的でプログラムを表示する顧客向けモニターを使用する企業は、「ライブ」プログラムを使用しません。インターフェースを制御する必要があり、何らかのエラーが表示される可能性を許容するのは、あなたが望むものではありません。動作するプログラムの画面ビデオを記録するか、静的な表示のためにスクリーンショットを撮ります。

それ以外の場合は、特定の情報を表示するために使用される特定のダッシュボードがあり、これらは通常、切り替えられません。または、A/V機器を使用して切り替えられ、各プログラムが別のコンピューターで実行されるため、失敗の可能性を最小限に抑えることができます。

2
music2myear