• 締切済み

ソフト終了後に常駐するプログラムも終了するソフト

Windows7でI.O.DataのmAgicTVを使っています。このTV視聴ソフトを起動すると、mAgicTVマネージャーという管理ソフトも起動し、TV視聴ソフトを終了しても常駐したままになります。できればTV視聴ソフトを終了したらいっしょ(または直後)にmAgicTVマネージャーも終了させたいのです。このような、一つのソフトを終了したら続けて別のソフトも自動的に終了できるようなソフトがあったら教えてください。

みんなの回答

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.8

> これらはTVソフトを終了してもそのまま動き続けますが 「/withTV」付きで起動するとこの5つが立ち上がり、TV画面を終了してもこの5つが残っているということでしょうか。 ということは画面は消えるがソフトは終了せずに常駐していることになりますね。 そうなると、バッチで簡単に処理することはできそうにありません。 TV画面の存在をチェックして、存在しなくなったら常駐しているmtvManager.exeを終了させるプログラムを作るしか方法がありません。 残念ですが、バッチでの処理は諦めてください。

omoitsukan
質問者

お礼

ありがとうございます。 >「/withTV」付きで起動するとこの5つが立ち上がり、TV画面を終了してもこの5つが残っているということでしょうか。 その通りです。 なぜこのような設定にする必要があるのか理解できませんが、それでもいろいろと考えていただいて時間を無駄にしてしまいましたね。申し訳ありません。こちらも勉強になりました。 最後に、なぜ常駐させたくなかったかというと、こいつが起動しているとPrtScrキーが効かなくなってしまうのです。Snipping toolを使えばデスクトップのコピーは可能なんですが、キー一つで画面のコピーができる便利な機能がいざというときに使えなくなる(TV画面のコピー防止のためと思われる)のが納得できなかったので…。細かいことですが、こういうことは実際にソフトを使ってみるまで分からないものなんですね。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.7

「mAgicTV」自体を知らないで書いていますが、「/withTV」で起動されるTVソフトがあると思います。 そうであれば、別々に処理するようにして ---- start.bat ----------------------------------------------- start "" "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe" start "" /w "C:\Program Files (x86)\I-O DATA\mAgicTVGT\TVソフト" taskkill /im mtvManager.exe /f -------------------------------------------------------------- でできると思います。 タスクマネージャで「mtvManager.exe /withTV」の時に「mtvManager.exe」と一緒に 起動されるソフト名が判りませんか。

omoitsukan
質問者

補足

遅くまでおつきあいいただき、お手数おかけします。 TVと一緒に起動するのはmtvManager.exeのほか、 mtvMaintainer.exe mtvSystemControl64.exe mtvSystemControl86.exe mtvUpdate.exe の4つのようです。これらはTVソフトを終了してもそのまま動き続けますが、 mtvManager.exeを手動で終了させるといっしょに終了します。(番組表とか自動アップデートでしょうか?)

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.6

もしかしてTVソフトが終了しても「mtvManager.exe」は終了していないから二行目に行かないかもしれませんね。 TVソフトが起動すれば「mtvManager.exe」は終了してしまっても問題ないのであれば ---- start.bat -------------------------------------------- rem 待ち時間t(秒) set t=10 start "" "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe /withTV" ping localhost -n %t% > nul taskkill /im mtvManager.exe /f ------------------------------------------------------------ 「/w」を付けないとすぐに三行目に行きますが、「t=10」(10秒)で指定した時間だけ待ってからtaskkillが実行されます。

omoitsukan
質問者

補足

どシロート相手に何度もおつきあいいただき、ありがとうございます。 set t=10 start "" /w "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe" "/withTV" ping localhost -n %t% > nul taskkill /im mtvManager.exe /f これで一応TVソフトは起動しますが、10秒後に強制終了してしまいます。 /wっていうのが効いていないみたいです。逆に、これがないとプログラムの初期化ができないと言われます。 つまり、mtvManager.exe(mAgicTVマネージャー)はTVソフトが起動中は動いている必要があるのと、TVソフトを終了したあとでなければ終了できないんです。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.5

> ↓これをどこかに加えるんですか?  taskkill /im mtvManager.exe /f 「mAgicTVマネージャー」が「mtvManager.exe」でしょうか。 「/withTV」付きで起動するとmtvManager.exeが起動してTVソフトも起動し、TVソフトを終了するとmtvManager.exeは残っているという状態でしょうか。 そうであれば二行目に書いてください。 一行目のプログラムが終了すると二行目が働きますから「mtvManager.exe」が強制的に終了します。 起動できた書式を一行目に、taskkillを二行目に書きます。ここでの指定を「mAgicTVマネージャー」にします。 「mAgicTVマネージャー」が他の名前なら、その名前を書いてください。 例えば ---- start.bat ---------------------------------------- start "" /w "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe /withTV" taskkill /im mtvManager.exe /f ------------------------------------------------------- タスクバーを右クリックして、タスクマネージャをあらかじめ起動しておいて表示されるタスクあるいはプロセス/サービスを見れば起動しているかどうかの状態が判ります。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.4

コマンドプロンプトを起動して下記のどちらかをを試していただけますか。 通常はこれで起動するはずなんですが。 "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe /withTV" start "" /w "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe /withTV" > このバッチだとTVを起動すると同時にもう一つのプログラムを終了することになりませんか 「start」の方は「/w」を付けることによって指定のプログラムが終了するまで次の行の実行に移りませんから大丈夫です。 私のマシンでは一行目の記述でも同じ動作をします。 あるいは下記も試してみて下さい。 "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe" "/withTV" start "" /w "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe" "/withTV"

omoitsukan
質問者

補足

たびたびお付き合いいただき恐縮です。 二つ目の記述でTVソフトは起動しました。で、終了したときのもう一つのプログラムの扱いはどうなるんでしょう。 ↓これをどこかに加えるんですか?  taskkill /im mtvManager.exe /f 「mtvManager.exe」が一緒に終了したいプログラム名です。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.3

下記の方法ではどうでしょうか ---- start.bat ------------------------------------- start "" /w "C:\Program Files\TeamViewer\Version9\TeamViewer.exe" taskkill /im iexplore.exe /f ---------------------------------------------------- 一行目の先頭にすこし加わっています。

omoitsukan
質問者

補足

たびたびありがとうございます。 残念ですが、何も起こりませんでした。(起動すらしない) ちなみに、先に起動したいTVのソフトのパスはこうなってます。末尾に/withTVというオプション?が付いています。 "C:\Program Files (x86)\I-O DATA\mAgicTVGT\mtvManager.exe" /withTV シロートなりに考えたんですが、このバッチだとTVを起動すると同時にもう一つのプログラムを終了することになりませんか? それではTVのソフトが使えないんです。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.2

簡単にはバッチで行う方法でしょうか。 ---- start.vbs バッチの画面を表示させないためだけ ------ CreateObject("WScript.Shell").Run "start.bat",0 ---------------------------------------------------- ---- start.bat -------------------------------- "C:\Program Files\TeamViewer\Version9\TeamViewer.exe" taskkill /im iexplore.exe /f ------------------------------------------------ 一行目が起動したいプログラムで、フルパスで書きます。 二行目が強制終了したいプログラムで、プログラム名だけを書きます。 バッチだけでもできますが、コマンドプロンプトの画面を出さないために VBSを介してバッチを起動します。 VBSだけでも書けると思いますが、私は詳しくないので。

omoitsukan
質問者

補足

ありがとうございます。 自分も詳しくないので、分かる範囲でバッチファイルとVBSファイルを作ってやってみましたが、どちらも起動しませんでした(taskkill /im ○○○.exe /fがなければ普通に起動します)。 起動時よりも、ソフトの終了時に時間差で動いてもう一つのソフトが終了できるようになればいいのですが…。

回答No.1

こんばんは。 逆に考えてみます。 起動しているアプリケーションを終了せずに、タスクマネージャーで常駐ソフトを終了してみてはいかがでしょうか。 ご回答として不十分であれば、申し訳ありません。。。

omoitsukan
質問者

補足

ありがとうございます。 残念ながら、常駐プログラムはTV視聴ソフトを先に終了しないと終了できないのです。