- ベストアンサー
バックグラウンドで実行されるプログラムを作るには?
バックグラウンドで実行されるプログラムを作るにはどうすればよいのですか? あと自分自身へのリンクを自動で作成するにはどうすればいいのですか? win xp borland c++です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
特別なことは何もする必要はありません。どんなふうにプログラムを作っても、そのプログラムを実行すれば他のプログラムに対してバックグラウンドで実行されます。 リンクの作成にはIShellLinkインターフェースを使用します。使用方法は参考URLをご覧ください。また「IShellLink」で検索すると使用例がたくさん出てきます。 http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/ifaces/ishelllink/ishelllink.asp
その他の回答 (3)
- tikisukeman2
- ベストアンサー率32% (32/99)
Borland C++のことは知らないですが、VisualStudioならATLを使えば30分もあれば、一丁前のサービスプログラムが作れますよ。要するにCOMなんですが、Borlandならどうするのかな・・・。
- jagd-doga
- ベストアンサー率31% (14/45)
#1の方もおっしゃられていますが「バックグラウンドで実行されるプログラム」を作るのでしたら、とくに何も考える必要はありません。 ただ単に、出来たプログラム(アプリ)をバックグラウンドで動かせばよいわけですから。 質問を 「あるプログラムを実行すると、そいつが別プログラムをバックグラウンドで起動して、何かをするためには・・・」 と(勝手に)拡大解釈するならば、 子プロセスを生成する fork() というシステムコールがあったように思います。 使い方までは詳しくわからないですけど。
- buihyaku
- ベストアンサー率29% (97/326)
バックグラウンドで実行される、というのがサービスのことをさしているのだとすると、自分で作るのは結構大変だったとおもいます。 私も昔1回しか作ったことがないのでうろ覚えですが、 すべてのサービスはサービスコントロールマネージャ(SCM)と呼ばれるシステムにより管理されますので、おつくりになったプログラムもこのSCMに対して登録してあげる必要があります。 サービスで動作するプログラムは通常のmain/WinMainのほかにSCMからサービスとして呼び出されたときに実行されるServiceMain関数を持ちます。 また、SCMから呼び出される一時停止、停止、再開などの操作をハンドルするHandler関数を備えなければなりません。 詳しくはWin32SDKヘルプを参照ください。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/service_control_manager.asp また、自分で全部作らなくてもsc.exeで通常のプログラムをサービスとして動作させることもできるようです。 詳しくは以下を参照ください。