2017-01-18 11 views

答えて

0

これはどういうことか想像できません。

Windowsサービスは汎用メッセージングAPIを公開していません。各サービス(それを選択すべきである)は、それ自身の選択したIPCチャネル(例えば、WCF)を介して自身の特定のAPIを公開する。

ただし、これに関係なく、これを同期させることはできません。どんな種類のIPCもサービスエンドポイントへの非同期コールになります。

あなたの質問では、より具体的にする必要があります。

Windowsサービスとやりとりするために利用できる汎用APIは、基本的には次のように制限されています。停止、開始、インストール、アンインストール。ここを見て:https://msdn.microsoft.com/en-us/library/windows/desktop/ms685942(v=vs.85).aspx

(あなたが新しい Windowsサービスを作成している場合は、Pythonで、ZeroMQは、コマンドラインのPythonスクリプトから、それと対話するための非常に合理的な選択である。代替IPCの任意の数があります同様に良いだろうPython用チャネル)

-

だけでサービスを開始するには、試してみてください。

import win32service 
import win32serviceutil 
import time 

win32serviceutil.StartService(serviceName) 
status = win32serviceutil.QueryServiceStatus(serviceName) 
while status == win32service.SERVICE_START_PENDING: 
    time.sleep(1) 
    status = win32serviceutil.QueryServiceStatus(serviceName) 

のNbを。管理者としてpythonインスタンスを生成しない限り、アクセス拒否エラーが発生します。

+0

応答をありがとう、私の要件は次のようなものです...私はサードパーティのWindowsサービス[風邪のような]を開始し、サービスが開始されるまで待っています。 –

+0

あなたはまだそれを同期的に行うことはできませんが、ここにあなたが何をしているかの例があります:http://code.activestate.com/recipes/135700-win32-service-administration/ – Doug

+0

ヒープ@Dougありがとうございます。それは本当に私のために働いた:) –

関連する問題