1

管理者として実行されるスタートアッププログラムである必要があるJavaプログラムがあります。サービスにしないとできないようです。を使ってみHKLM\SYSTEM\CurrentControlSet\Services\Services\MyServiceました。私はGoogleアップデータが使用するものに似たものを試しました(彼らは使用します...\Services\gupdate)。プロセスは開始されません(または少なくともすぐに停止しますが、はっきりとはわかりません。

msconfig.exeサービスが[サービス]タブに表示されないため、レジストリの使用方法に問題があると思います。また、コントロールパネルの[ローカルサービスの表示]には表示されません(Windows 7、[スタート]メニューで[サービス]の検索にあります)

ここにあるもっと簡単なアプローチを試しました。.regこれらの内容でファイルを作成します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService]
"Description"="My Service starts the Special Process."

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters]
"Application"="C:\\Test\\MyProcess.cmd"

必要に応じて別のコマンドラインの代替案を検討したいと思いますが、インストーラーに特定のレジストリアイテムを追加するように指示すると、アンインストール時にそれらのアイテムが自動的に削除されるため、レジストリアプローチが気に入っています。

上記のファイルが「MyService」という名前.regのアイテムを追加しない理由はありますか?msconfig

私が書いたプログラムはJavaで書かれています。GUIインターフェイスはありません。

4

3 に答える 3

3

レジストリを編集してサービスを作成できますが、(明らかなように)サービスに関連付けられたサービス実行可能ファイルが必要です。Reg Addこれらのキー/値の追加が可能になります。

サービスが認識される前に、システムによってレジストリを再ロードする必要があります。再起動するとジョブが完了します。

  • ServiceNameキーをに追加しますHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
  • ServiceName次に、キー 内に次の値を追加します。
    • DisplayName - REG_SZ - Sample Service
    • Description - REG_SZ - This Service is the Hello World Service!
    • ErrorControl - REG_DWORD - 1 (decimal)
    • ImagePath - REG_EXPAND_SZ - C:\ProgramData\Program\service_executable.exe
    • ObjectName - REG_SZ - Username_For_Execution(多くの場合LocalSystem)
    • Start - REG_DWORD - 2 (decimal)(これは、目的の開始動作によって異なります)
    • Type - REG_DWORD - 16 (decimal)

次のWebサイトは、さまざまな値の意味を解読するのに役立ちました。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\その他の例については、キーの内側をぐるりと回ってください。

于 2018-07-11T19:46:00.300 に答える
2

管理者権限でプログラムを実行したい場合は、サービスを使用する代わりに別の方法があります。

たとえば、タスクスケジューラを使用できます。

コマンドラインも利用できます:SCHTASKS / create

于 2011-09-19T06:16:06.873 に答える
1

レジストリを操作してサービスを作成することはできません。また、任意のアプリケーションをサービスとして実行することもできません。

サービス内から任意のプログラムを実行するには、WindowsServer2003リソースキットで利用可能なsrvany.exeサービスを使用します。手順については、 KB137890を参照してください。独自のサービスを作成する場合は、こちらを参照してください。

サービスを作成するには、scコマンドラインツール、またはWindowsServer2003リソースキットのinstsrv.exeツールを使用できます。または、CreateServiceWin32API関数を使用します。

于 2011-09-19T02:38:34.397 に答える