バッチ起動でウィンドウアプリを最前面で表示する方法

このQ&Aのポイント
  • バッチを作成してウィンドウアプリを起動し、最前面で表示する方法を説明します。
  • ウィンドウアプリを最前面に表示するためには、ウィンドウのハンドルを取得して最前面に持ってくる処理を追加することで実現できます。
  • Windows10 Proの環境で実行することができます。ショートカットのプロパティで「実行時の大きさ」を「最小化」に設定することも可能です。
回答を見る
  • ベストアンサー

バッチ起動でウィンドウアプリを最前面で表示したい

まず、バッチにてウィンドウアプリを起動する処理を記述し保存します。  例.aaa.bat    C:\Windows\System32\notepad.exe このバッチのショートカットを作成し、ショートカットのプロパティで 「実行時の大きさ」に「最小化」を指定します。 作成したショートカットをダブルクリックしてaaa.batを起動したときには、 DOSプロンプト自体は最小化の状態で起動されますが、 notepad自体は他のウィンドウ(IEでもエクスプローラーでも その他のウィンドウでも何でもよい)がすでにデスクトップ上に 表示されていると、notepadは全てのウィンドウの最背面に 表示されてしまいます。 notepadを最前面で表示したいのですが、最前面に 表示(アクティブ)するためにはどのような対応を 行えばよいのでしょうか? 使用環境はWindows10 Proです。 よろしくご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.2

やりたいことは 1. なにか特定のアプリケーションをbatファイルで実行し そのアプリケーションが終了するのを待って なにやらbatファイルで記述した後続の作業をしたい 2. このbatファイルの画面は最小化したい 3. アプリケーションのウィンドウは最前面に表示したい ってことでしょうか。 だとすると、 C:\Windows\System32\notepad.exe を記述した行の次行以下に、 メモ帳のフォームを最前面に表示する制御を書いても メモ帳が終了するまで制御が移らないので 意味を持ちませんね。 こんな制御はいかがでしょうか。 aaa,bat に start cscript "D:\wk\Notego.vbs" C:\Windows\System32\notepad.exe を記述し 別途 =====次行以下から Option Explicit 'オブジェクト変数の宣言とWshShellオブジェクトの作成。 Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") '起動するのに2秒待つ。 WScript.Sleep 1000 'メモ帳をアクティブにする。 objWshShell.AppActivate "メモ帳" Set objWshShell = Nothing =====前行までを記載したスクリプトを D:\wk\Notego.vbs に配置します。

ararakomatta
質問者

お礼

HohoPapaさん、ご回答ありがとうございました。 返事が遅くなりまして、誠に申し訳ありませんでした。 別作業に時間を取られていて、回答を確認することができていませんでした。 バッチやWindowsの設定、または、アプリケーション側の 作りを何とかしなければいけないと考えていましたが、 このような対応の方法があるのですね。 とても勉強になりました。 ありがとうございました。

その他の回答 (1)

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.1

C:\Windows\System32\notepad.exe ではなく、 start C:\Windows\System32\notepad.exe とし、 >このバッチのショートカットを作成し、ショートカットのプロパティで >「実行時の大きさ」に「最小化」を指定します。 これを >このバッチのショートカットを作成し、 最小化を指定しない という仕込みはいかがでしょうか? それとも、なにか事情があって、 >DOSプロンプト自体 をタスクバーに残したいですか?

ararakomatta
質問者

補足

ご回答ありがとうございました。 返事が遅くなりまして誠に申し訳ありません。 > それとも、なにか事情があって、 > >DOSプロンプト自体 > をタスクバーに残したいですか? はい、質問紙使用した例は、だれでも簡単に再現できる内容とするため 簡単な例を記入しました。 しかし、実際にはバッチの処理はもっと複雑で時には、 バッチの処理結果を知らせるためにもDOSプロンプトは 最小化しておく必要があります。 そのため、ご提示いただいた方法ではDOSプロンプトが 消えてしまうため、当方で実際に行いたいことではないのです。 (説明が不足していたことをお詫び申し上げます)

関連するQ&A

  • ウインドウの最前面表示

    指定された日時になると、メッセージウインドウを表示するソフトを作成中ですが、そのウインドウのOnInitDialog()でShowWindow(SW_SHOW)をコールしても、その時に起動しているアプリケーションによっては、最前面に表示されません。(エクスプローラやIEの前面には表示されるが、VC++では背面に表示されます。) アプリケーションによっては無理なのでしょうか? (警告ウインドウとしても使用したいので、最前面に表示したいのですが...。) 環境  WindowsXP  Visual C++6.0

  • dosバッチ起動後、画面を閉じないようにしたい。

    調査.batに1行type test.txtを表示するバッチを作成したのですが、すぐ画面がとじます。 dosバッチ起動後、コマンド画面を閉じないようにするには、次の行に何か書くのでしょうか。 宜しくお願いします。

  • バッチファイルが認識されず起動しません

    バッチファイルをダブルクリックしても、「○○○. batは有効なWin32アプリケーションではありません」と表示されて、起動できません。 ■環境:WindowsXP 64Bit版 SP3 ■以下、確認したこと (1)非常にシンプルなTEST.BATを作成したが、同じエラーが表示され起動できませんでした。   このバッチファイルの内容は cmd/k dir c: (2)Windowsの拡張子に対する関連付けは、「Windowsバッチファイル」になっていました。 (3)環境変数のPATHEXTに.BATは登録されていました。 (4)自分以外のユーザーでログオンすると、バッチは正しく動作します (5)Dos窓にバッチファイルをドラッグ&ドロップすると、正しく動作します 何かWindowsの設定がおかしいのでしょうか? とても困っています、教えてください!

  • 98SE、バッチファイルのショートカットについて

    Windows98 SEで、 バッチファイル(.bat)を作成後実行すると、何やら、そのバッチファイルへのショートカットが作成されてしまいます。 このショートカットが作られないようにはできないのでしょうか? よろしくお願いします。

  • VBAでエクセルを常に最前面に

    エクセルVBAを利用して、エクセルの画面を常に最前面にすることは可能でしょうか? 状況としては、VBAからWindows Script Hostを利用してコマンドを発行後、 結果を取得していますが、DOSの黒い画面が一瞬でてきますのでこれを見えなくすることが目的です。 常に最前面にする以外での良い案があれば教えて頂きたいです。 ※ワケがありまして↓のやり方は使えないです。。。  1)cmd.exeのショートカットを作成  2)実行時の大きさを最小化状態に変更  3)作成したショートカットで起動

  • タスクスケジューラからショートカットを起動させるには?

    タスクスケジューラから起動するのに、プログラムのショートカットを登録したいのですが、登録できません。 ショートカット名:aaa.bat リンク先:bbb.bat タスクスケジューラの実行するファイル名に「参照」で登録すると、ショートカット名が[aaa.bat.lnk]と.lnkの拡張子が表示され、実際の実行するファイル名には、ショートカットではなく、リンク先(bbb.bat)が表示されてしまいます。 また、直接ショートカット名[aaa.bat]と記述すると、登録できても実行されません。 そもそも、ショートカット経由してタスクスケジューラに登録したい理由は、プログラム実行時に最小ウィンドウ(バックグラウンド)で実行したいためです。 どのようにすれば、ショートカットをタスクスケジュールに登録できるか、ご教授ください。

  • IMEパッドの前面表示について windows7

    IMEパッドを起動すると他のソフトウィンドウの下に隠れるかたちで表示されてしまい使いにくく困っています 例えば、GoogleChromeの検索バーに文字を打ちたくても IMEパッドが起動したGoogleChromeのウィンドウより下に隠れてしまいます 常に最背面に表示されるため IMEパッドを使うにはIMEパッドとGoogleChromeが被らないようにそれぞれの位置とサイズを調整しなければならない状態です 他のソフトと同じく、クリックしたら最前面に出てくるなど時と場合によって背面と前面で使い分けられるようには出来ないのでしょうか? IMEパッドのウィンドウが最背面に表示される以外は問題なく使用できています ご回答よろしくお願いします

  • バッチファイルで前後6ヶ月の年月を取得したい

    DOSのバッチファイルで起動時に年月(西暦:YYYYMM)をパラメタとして渡して、バッチの中で前後6ヶ月の年月求めたいのですが、どなたか教えてもらえないでしょうか?。 【バッチ起動例】 AAA.bat 201105 とすると、前:201011 後201111を求めたいです。 よろしくお願い致します。

  • DOSプロンプトからFTPのスクリプトバッチが起動できない

    Win2000Proです。 以下のようなBATファイルとスクリプトバッチファイルを作成しました。 ---FTP.bat--- (1)pause (2)ftp -n -s:aaa.txt (3)pause ---aaa.txt--- op localhost user user pass ls close quit このBATファイルを実行すると(1)(2)文の無限ループになってしまい 肝心のftpコマンドは実行されません。 DOSプロンプトから手入力で入力すると実行はできます。 また、BATファイル自体、 (1)pause (2)dir (3)pause のように書き換えると問題なく実行できます。 (1)pause (2)ftp (3)pause のように書き換えても同じくループされます。 わかる方いらっしゃいますでしょうか? よろしくお願いします。

  • バッチ処理のDOSウィンドウを消したい

    Win95ではバッチファイルのプロパティーで最小化を選択してできたのですが、Win2000でできません。 DOSウィンドウの最小化、できれば出さないようにできないでしょうか?