2017-05-09 8 views
-4

Windowsサービスについては、msdnをご覧ください。 私はmyserviceを持っている、私は私のサービスが停止していないと思う。私は他のサービスを見て、あなたがtaskmgrでサービスを停止すると、それを制御するためにウインドウが表示されます。何をする?誰か話している?Windowsサービスの停止を禁止する方法

は、Windowsサービスコード

static void ServiceHandler(DWORD dwCommand) 

void ServiceMain(int argc, wchar_t* argv[]) 

に見えるUに皆に感謝します。

私はBuildExplicitAccessWithName APIを見えたが、している:

BuildExplicitAccessWithName(&ea, TEXT("Administrator"), 
0, 
SET_ACCESS, NO_INHERITANCE); 

その私の効果に達していません。

+0

管理者がサービスを停止できないようにすることはできません。しかし、制限されたユーザーアカウントがそうするのを防ぐことができます。サービスを停止するには、 'SERVICE_STOP'特権が必要です。 –

+0

私は他の製品を見ているように、お返事ありがとうございます。メニューをクリックするとサービスが拒否されます。だから私はプログラミングでやることを考えています。 –

+0

なぜ*管理者*がサービスを停止できないようにしたいのですか? – mason

答えて

0

サービスが停止要求を受け入れる場合は、SetServiceStatusを呼び出すときにdwControlsAcceptedフィールドにSERVICE_ACCEPT_STOPビットを設定する必要があります。

サービスがでない場合、は停止リクエストを受け入れたいと思うだけで、そのビットを設定しないといけません。停止要求を受け入れるかどうかをリアルタイムで変更することもできます。たとえば、サービスがアイドル状態の間に停止要求を受け入れることができますが、ビジー状態のときには要求を拒否することができます。

+0

あなたはこの設定が私の考えに到達することができます。見つけた。しかし、ユーザーstllはプロセスを停止し、サービスを停止させることができます。私はそれについていくつかのコードを検索します。 ntdll。 APIを反映します。 RtlSetProcessIsCriticalは、 –

+0

http://www.codeproject.com/Articles/43405/Protecting-Your-Process-with-RtlSetProcessIsCriti –

+0

を見ることができますが、このプログラムはwinxpでのみ有効です。 win7 havnt効果。 –

関連する問題