バッチ起動したアプリケーションにフォーカスする

バッチスクリプトから一連のアプリケーションを実行していますが、開いているプログラムに常に焦点が当てられていることを確認したいと思います。
これは実験的な設定であり、フォーカスをフルスクリーンのウィンドウに変更しなければならないなどの手間を最小限に抑えたいからです。

この問題は、以前のプログラムが終了し、デスクトップが表示され、デスクトップ上のアイコンをクリックした直後に発生し、その直後にシーケンスの次のプログラムが処理されていて、新しいウィンドウが表示されないフォーカス。

コマンドウィンドウを隠してしまった今、問題はずっと頻繁になりました。

シーケンスの次のプログラムのフォーカスを強制する方法は、バッチコマンドなので、OS(Win XP上)やヘルパーアプリの設定が参考になるかもしれません。

7
あなたはこの問題に対する答えを得ましたか?最近私も同様の問題で立ち往生しています。どんな助けも高く評価されるでしょう。ありがとう。
追加された 著者 aj8080,

2 答え

start/f yourapp.exe はアプリケーションをフォアグラウンドで起動します。

1
追加された
"/ f"は未知の議論であると言われています。私は start/MAX/WAIT "" "my.exe" を試しましたが、 my.exe と同じ動作をします。たぶん私はこの問題のためのヘルパーアプリが必要ですか?
追加された 著者 Milla Well,
@MillWell:おそらくそうです。 Windowsは最新のユーザー操作に基づいてフォーカスを制御し、フォーカスをユーザーに強制する機能を公開していないようです。しかし、はプログラマに公開されているので、誰かが任意のウィンドウ/プログラムに焦点を絞った専用のヘルパーアプリケーションを作成している可能性があります。
追加された 著者 Andriy M,

別のプログラムにフォーカスしたい場合は、これを行うことができます。

call focus WindowTitle
exit /b

:focus
setlocal EnableDelayedExpansion 

    if ["%~1"] equ [""] (
        echo Please give the window's title.
        exit /b
    )

    set pr=%~1
    set pr=!pr:"=!

    echo CreateObject("wscript.shell").appactivate "!pr!" > "%tmp%\focus.vbs"
    call "%tmp%\focus.vbs"
    del "%tmp%\focus.vbs"

goto :eof 
endlocal 

私はアプリケーションをフォーカスするためにvbscriptを使用しています。 ウィンドウのタイトル、ウィンドウの名前(whatever.bat)ではなく を渡す必要があります。 適切なウィンドウがフォーカスされていることを確認するために、タイトルを設定することができます。 例:

title WindowTitle
1
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript