- ベストアンサー
バッチレベルでプログラム起動制御する方法について
- Windowsにて、OS起動時にスタートアップにバッチファイルを登録し、アプリケーション起動の確認を行い、指定の条件に基づいてアプリケーションを起動する方法について説明します。
- バッチファイルの記述方法がわからない場合でも、以下の手順に従って実行することで簡単に実現することができます。
- キー入力によるアプリケーション起動の確認と、一定時間経過後の自動起動についても詳しく説明します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
お望みの機能は cmd.exeのバッチ機能だけでは実現しません。 方法は2つあると思います。 1. バッチファイルを拡張するプログラムを導入する。 http://www.vector.co.jp/soft/win95/util/se349380.html などはお望みの動作の手助けをすると思います。 vector.co.jp などにあるバッチの拡張するツールを検索すると よいかもしれません。 2.バッチにこだわらず他のプログラムを使用する。 wshなどはデフォルトでほとんどのWindowsで使用できます。 http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html http://www.atmarkit.co.jp/fwin2k/operation/wsh07/wsh07_03.html コマンドプロンプトにこだわらなければより柔軟な対話的スクリプトが 書けます。 以下は hoge.vbs などとして実行してみてください。 少し変更すれば、望みの機能が実現できるかと思います。 Set objShell = WScript.CreateObject("WScript.Shell") Directory = "C:\" '実行ファイルを起動するディレクトリ RunCommand = "C:\windows\system32\cmd.exe /k echo aaa" '実行ファイル名 WaitTime1 = 20 'はじめのダイアログの待ち時間 WaitTime2 = 20 '次のダイアログの待ち時間 Ret = objShell.Popup( _ RunCommand & " の実行を" & vbcrlf & _ "中止する場合は「キャンセル」を押してください。", _ WaitTime1, "処理を実行しますか?", vbOKCancel+vbQuestion) Select Case Ret Case vbOK, -1 objShell.CurrentDirectory = Directory objShell.Run RunCommand Select Case Ret Case vbOK objShell.Popup "実行しました。", WaitTime2, vbInformation Case -1 objShell.Popup "自動的に実行しました。", WaitTime2, vbInformation End Select Case vbCancel objShell.Popup "キャンセルしました。", WaitTime2, vbInformation End Select
お礼
大変お世話になりました。 サンプルで頂きましたVBScriptのソースをベースに作成し、思った以上のものが出来ました。大変ありがとうございます。 UNIXのshellでやっていたような事がWindowsのコマンドプロンプトで動作するBATでできればと思っていましたが、拡張しないと出来ないことを始めて知りました。 頂いた2つの方法共に非常に的確に内容が把握できるものを教えていただき、参考のホームページのリンクもすごく参考になり勉強になりました。 こちらで紹介頂いたwshのホームページを参考に勉強していきたいと思います。 すばらしいご回答をありがとうございました。