プロが教えるわが家の防犯対策術!

コンソールアプリケーションをC言語(Visual-C++6.0)にて開発予定です。このアプリケーションは画面を使わないのでコンソールアプリケーションにする予定です。このプログラムは常駐プロセスにし、コマンドで起動停止を行うようにする予定です。プログラムの起動はバッチファイルを作成し、そこから実行しようと考えていますが、プログラムを停止させるバッチファイルのイメージがわきません。unixの場合は、当該プロセスにSIGTERMを送信する等の方法が考えられるのですが、windowsで常駐のコンソールアプリケーションを停止させるには、どのような方法があるのでしょうか。ご存じの方ありましたら、教えてください。停止させる方法は、外部から常駐プロセスに停止である旨の何らかの事象を送り、それを常駐プロセスがキャッチし、自ら停止することを想定しています。(有無をいわさず殺すことは考えていません)
実行環境:windows2003を想定
開発言語:VC++6.0でC言語

A 回答 (3件)

Windowsで画面を使わない常駐アプリケーションならコンソールアプリケーションじゃなくサービスにするのが普通じゃないですか。


サービスにすればWindowsの機能(GUIやsc.exeコマンド)により起動・停止の制御ができますし、停止コマンドを受けて常駐アプリケーション側で停止処理をすることができます。
プログラムとしてもサービスとしての制御要求に応えるエントリを幾つか用意するだけで特に難しいところはないと思います。
    • good
    • 0
この回答へのお礼

なるほど、サービスですか。何となく私が求めていた解のような気がしてきました。サービスについて調べてみます。

お礼日時:2006/02/21 09:03

コンソールアプリではないが


タスクバー(XP以降だと通知領域と言うのかな)
常駐型のアプリにしたらどう?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。今のところ、その方法は考えておりません。windows上で動作するアプリケーションを作りますが、(イベントドリブンである)windowsアプリケーションは考えておりません。

お礼日時:2006/02/20 23:33

単純な方法では、常駐プログラムが定期的にどこかのファイルなりレジストリなりを参照するようにして、別のプログラムでそこにフラグを立てる、と。

で、常駐プログラム側がフラグを検出したら、終了処理に・・・じゃ駄目?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。他に良い回答がなければそのような方法を採用するつもりでおります。他に、これが定番ですというようなものがあるかもしれませんので、もうちょっと待ってみます。

お礼日時:2006/02/20 22:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!