サービスとして起動するには?

[戻る]
wood 2002/05/21(火) 08:09:59
Win2000/XP VC++6.0
おおざっぱな質問で申し訳ないのですが
クライアント(問い合わせ)→サーバー(起動アプリケーション選択)→
サーバー(データ検索等)
のようなことを
スタンドアロンでできているプログラムを機能分割して実現できる
サンプル探しています
>サーバー(起動アプリケーション選択)
この部分をWin2000のサービスとして起動したいのですが
サンプル、例題を知っていたら教えてください
MSDNだったらキーワードなど教えてください
(MSDN 2001.10月リリースを使用しています)

YuO [E-Mail] 2002/05/21(火) 08:48:40
キーワードではなく,URLですが……。

とりあえず,
・ControlService API [日本語]
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpwinpf/_win32_controlservice.htm
・Services [英語]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/services_0p0z.asp
あたりを参照するとよいかと。
#サービスを作成したことがないので,このくらいしかわかりませんが……。

みみみ 2002/05/21(火) 10:34:28
特別なケースについて必ずしも当てはまる話ではありませんが・・・
実行権限(ユーザ)が"system"になる以外、サービスexeは実行形式exeと同等であり、Win32
APIなども普通に使えます。(shellからユーザアプリケーションが起動できるほど同等で
ないですが)
よって特段にサービスと断ったのサンプルは要らない(→ない)と思います。また
クライアントのリクエストがWebとかデータベースなど汎用的な手段のとき、実行ファイルを
サービス形式にする必要はなく作成が簡単なので、通常それらを利用してシステム設計すると
おもわれます。
例
Oracle or SQL-Server:クライアントのOBDCドライバで実装
http: ISAPI形式のdllで実装しIISサービスを使う

wood 2002/05/21(火) 12:31:41
YuOさん、ありがとうございます、参考にさせていただきます

みみみさん、のご意見は一度でもそれなりのご経験ある方には、この文章でわかるのでしょう
けど、私のようにスタンドアロンPG数本しか作成したことが無く、ネット系のjavaや
htmlの仕事を業務としてしたことが無いものには理解不能です
作成不要としても「ControlService API 」が用意されているのならどこかに
例題が無いとは思えないのですが?
それに私の思っている使用目的と違っていても「コントロールパネル」→「サービス」
と言うものが現存し使用されていますので

見た目だけでの質問ですが、もう少しご協力お願いします

みみみ 2002/05/21(火) 16:21:57
簡単なサービス.exeの作成方法を説明します。

VC6の新規作成で「ATL COM AppWizard」を起動します。サービスexeを選択してサービス
プロジェクトを作成してください。
これで一式そろった空のサービスのコードとプロジェクトが作成されます。
これをコンパイルしてコマンドラインから"MyService.exe /Service"と実行してください。
するとコントロールパネルから制御できるMyServiceサービスが作成されてるはずです。
(デフォルトでは手動起動になってます。コントロールパネルで起動してください。)

 全部で10分ぐらいでできます。

この"MyService.exe"は通常の起動[Ctrl f5]やデバッグモード[f5]でも起動できます。

作成されたコードにはGetMessageとDispatchMessageのメッセージループがあるので
外部からのメッセージはここに来ます。(WM_QUITなど)
よってこの前後にMyServerアプリケーションのコードを書くことになるとおもいます。
アクセス権が"system"ユーザであること以外普通のアプリケーションと同じAPI操作がで
きます。→WinSockの制御、ローカルファイルの入出力、データベース・・・etc、

 なおVC.netでは同じ事ができますがコードがほとんどブラックボックス化されているので
あまり参考になりません。

wood 2002/05/22(水) 03:36:05
[[解決]]
みみみさん、ありがとうございます
また、べつの質問の時よろしくお願いします

古いスレッドには追加発言できません。