• ベストアンサー

バックグラウンドで実行されるプログラムを作るには?

バックグラウンドで実行されるプログラムを作るにはどうすればよいのですか? あと自分自身へのリンクを自動で作成するにはどうすればいいのですか? win xp borland c++です。

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

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

特別なことは何もする必要はありません。どんなふうにプログラムを作っても、そのプログラムを実行すれば他のプログラムに対してバックグラウンドで実行されます。 リンクの作成にはIShellLinkインターフェースを使用します。使用方法は参考URLをご覧ください。また「IShellLink」で検索すると使用例がたくさん出てきます。 http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/ifaces/ishelllink/ishelllink.asp

参考URL:
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/ifaces/ishelllink/ishelllink.asp

その他の回答 (3)

回答No.4

Borland C++のことは知らないですが、VisualStudioならATLを使えば30分もあれば、一丁前のサービスプログラムが作れますよ。要するにCOMなんですが、Borlandならどうするのかな・・・。

参考URL:
http://program.station.ez-net.jp/special/vc/atl/service_vc6.asp
  • jagd-doga
  • ベストアンサー率31% (14/45)
回答No.3

#1の方もおっしゃられていますが「バックグラウンドで実行されるプログラム」を作るのでしたら、とくに何も考える必要はありません。 ただ単に、出来たプログラム(アプリ)をバックグラウンドで動かせばよいわけですから。 質問を 「あるプログラムを実行すると、そいつが別プログラムをバックグラウンドで起動して、何かをするためには・・・」 と(勝手に)拡大解釈するならば、 子プロセスを生成する fork() というシステムコールがあったように思います。 使い方までは詳しくわからないですけど。

  • buihyaku
  • ベストアンサー率29% (97/326)
回答No.2

バックグラウンドで実行される、というのがサービスのことをさしているのだとすると、自分で作るのは結構大変だったとおもいます。 私も昔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で通常のプログラムをサービスとして動作させることもできるようです。 詳しくは以下を参照ください。

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;251192

関連するQ&A

専門家に質問してみよう