- - PR -
VB6でWINDOWSサービスの作成
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-02 10:14
WINNDOWS2000サーバーマシンにVB6で作成したPGを
ServiceInstaller(九野氏作成)でサービスとして登録したのですが、 サービスが開始できませんでした。 サービスプログラムとして動かすには、いろいろ条件があるのでしょうか? (VB6でのサービスプログラムのサンプルソースや 参考サイトなどがあればいいのですが) お願いします。 | ||||||||||||
|
投稿日時: 2005-12-02 13:08
こんにちは。
ServiceInstallerって、どんなアプリケーションなんだろと Vectorからダウンロードして、公開されているソースコードを見てみましたが、 見てみて、「なぁんだ、それだけのこと!?」とガッカリしてしまいました。 もっと気の利いたアプリを想像していたのですが… たとえば「普通のバッチ系プログラムなんかをサービスとして実行できる」など。 ServiceInstallerの作者の方には、大変申し訳ないんですけれども… いちいちアプリを公開するほどのものでもない気がします。 Windows APIでSCM(Service Control Manager)経由で、サービスプログラムをインストールするだけのことです。 これだけなら、レジストリの「\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services」を 直接いじるだけでも可能でしょう?と思ってしまいました。 #失礼な発言ですね。スイマセン。 なので…
"ちゃんとした"Windowsサービスアプリケーションを作成してください。 ServiceInstallerは、ただサービスアプリケーションを登録するためのツールですので。 普通のプログラムをサービスアプリケーションに変身させてはくれません。
↓この辺のAPIを使えば、VB6でもできなくはないと思いますが サービス でも、VB6でスレッド作成できなければ、実質的に無理なんじゃないでしょうか? #いや本当に無理かどうかはよくは分かりませんが #C/C++で作るより逆に高度なテクニックが必要になる気がします。 率直なところ VB.NETを使えば、お手軽にWindowsサービスが出来てしまいますよ。 | ||||||||||||
|
投稿日時: 2005-12-02 15:56
こんにちは。
あっ、ネットで探していたらありました。 Auto Service 世界にはVB6でサービスプログラムを作ってしまう"ツワモノ"がいるんですね。 ソースの中身はWindows APIの呼び出しの応酬です。 #なぜそこまでしてVB6に拘ろうとするのか、私には理解できませんが。 いきなり上記のソースを見ても、分かりにくいと思いますのでヒントを… ・Windowsサービスプログラムは、通常、StartServiceCtrlDispatcherを始めに呼び出します。 ・Windowsサービスプログラムは、ServiceMainやServiceCtrlHandlerを作って登録する必要があります。 サービスに関しては次の書籍が参考になると思います。 Win32 システムサービスプログラミング 改訂版 | ||||||||||||
|
投稿日時: 2005-12-02 17:13
リソースキット(SRVANY.EXE,INSTSRV.EXE)は使えませんか?
| ||||||||||||
|
投稿日時: 2005-12-02 18:01
どうもVB6で作るのはめんどくさそうですね。
せめて、右下のタスクバーのところにアイコンが入るようにしたいのですが。 (タスクバーにはプログラムが表示されないで) これだと、ログインしていればサービスとほぼ同じなので。 | ||||||||||||
|
投稿日時: 2005-12-02 18:48
Me.Visible=false
| ||||||||||||
|
投稿日時: 2005-12-02 21:41
ふつー、Visual Basic で、Windows サービスを作るときは NTSVC.OCX を使いませんか?
| ||||||||||||
|
投稿日時: 2005-12-02 22:55
VB6 で、Platform SDK Service API を使ってもサポートは受けられません。(SCMが別スレッドで stop に入ってくるので。) コンパイル済みバイナリもそこらじゅうに転がっていますね。 無理に Service API を直接使うよりずいぶんと楽ができると思います。 |