2016-07-08 1 views
-2

私は自分のコードから、現在のWindowsサービスを停止しています。しかし、マニュアルに設定する必要があります。私はChangeServiceConfigに関するWindows文書を見て、明示的に状態をマニュアルに設定するオプションについては何も見つかりませんでした。 正しいAPIコールの方に私を案内してくれる人はいますか?Windowsサービスの状態を「手動」にする方法は?</p> <pre><code>srvc_status = ControlService(serviceHandle, SERVICE_CONTROL_STOP, (LPSERVICE_STATUS)&status); </code></pre> <p>しかし、それは、<strong>自動(遅延開始)</strong>へのサービスの状態を変更されています。以下に示すように

+0

これは答えではありませんが、サービスを停止すると、 'ChangeServiceConfig'を呼び出す必要があると思いますが、' dwStartType'パラメータには 'SERVICE_DEMAND_START'を入れる必要があります。つまり、次のようなものです: 'ChangeServiceConfig(serviceHandle、SERVICE_NO_CHANGE、SERVICE_DEMAND_START、SERVICE_NO_CHANGE、NULL、NULL、NULL、NULL、NULL、NULL、NULL);それが動作すれば教えてください。私はこれを答えに変換できます。 'dwStartType'列挙型はドキュメントに基づいたスタートアップの型に関連していることに気付くでしょう。なぜなら、' SERVICE_DEMAND_START'はあなたが必要とするものなのです。 –

+0

まさに私は以前にもそれを考えましたが、グーグルでは他のものに迷い込んでしまいました。それは完璧に正常に動作します。それを回答として追加してください。 –

答えて

1

ChangeServiceConfigでサービスの開始タイプを設定することができます。 dwStartTypeパラメータをSERVICE_DEMAND_STARTに設定すると、マニュアルに変更されます。

ここでは何もなく、開始タイプを変更していない例です:ChangeServiceConfig(serviceHandle, SERVICE_NO_CHANGE, SERVICE_DEMAND_START, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

それは一見明確ではないのですが、あなたはSERVICE_DEMAND_START列挙型の記述が言うに気づくでしょう:

プロセスを呼び出すとき何かを暗示することができますをStartService機能をStartServiceを呼び出すプロセスについては

は、手動で開始されます。

関連する問題