• 締切済み

【アプリのサービス化について】

【アプリのサービス化について】 現在私は、VC++ 2005 ExpressEditionを用いてアプリを開発しています。 その開発の中で、本アプリを電源を入れた時に自動起動させたいと思っております。 方法としては 1.レジストリにサービスとして登録する 2.タスクスケジューラに登録する の二つを考えていますが、これらをソースコード上から行う事は可能なのでしょうか? もし可能であれば、できればコードのサンプルを載せていただきたいと思っております。 よろしくお願いします。

みんなの回答

  • davidfox
  • ベストアンサー率58% (21/36)
回答No.4

1. の端折ったサンプルとしてこんな感じでしょうか... main(int argc, char *argv[]) {  SC_HANDLE newService, scm;  scm = OpenSCManager(略...  newService = CreateService(scm, 略...  CloseServiceHandle(newService);  CloseServiceHandle(scm); }

  • kirinoma
  • ベストアンサー率53% (288/542)
回答No.3

実行バイナリファイルをサービスに登録する関数はCreateService関数になります. ・CreateService関数 http://msdn.microsoft.com/ja-jp/library/cc429079.aspx ・DeleteService関数 http://msdn.microsoft.com/ja-jp/library/cc429089.aspx ・ソースの例 http://www.spanky-world.com/lab/windows_lab/windowslab_002.html CreateService関数を初回起動時(インストール時?)に実行する様にすれば良いのではないでしょうか(私自身はこのようなことをやったことがないので詳細は不明です). あと,sc.exeはデフォルトのWindowsXP(2000,server 2003)に含まれていた様な気がします. localicaさんのおっしゃるとおり,system()関数でscを呼べば,手間がかからないで済みそうです (こちらもやったことないので不明). 以上,参考になれば幸いです.

  • localica
  • ベストアンサー率52% (202/385)
回答No.2

失礼、作成したアプリをサービスとして登録したいという要件でしょうか? ソースを探すのが面倒でしたので、マイクロソフトから提供されているツールを外部コマンドとして呼び出して実装しては如何でしょうか。 http://support.microsoft.com/kb/251192/ja

hf7hakq
質問者

補足

確かにこれは可能かもしれないのですが、 このツールがないと出来ないということになってしまいますよね? こういったツールを利用しなくても、 どのPCにアプリをインストールしても同じような結果になるように作成したいのです。 そのためにはタスクスケジューラか、レジストリの登録かなと思っていたのですが・・・

  • localica
  • ベストアンサー率52% (202/385)
回答No.1

VC++ 2005 を電源ON時に起動させたいという要件でしょうか? であるなら、VC++ のexeのショートカットをスタートアップに登録すれば良いのでは? わざわざサービスに登録する必然がありません。

hf7hakq
質問者

補足

それですと、ログオン後の起動ということになってしまいます。 今回の目的は「ログオン前の時点からのアプリ起動」なので、スタートアップでは解決にならないのです。 分かりづらくて申し訳ありません。

関連するQ&A

専門家に質問してみよう