2017-01-18 70 views

回答

0

我無法想象這是如何可能的。

Windows服務不公開通用消息API;每個服務(應該選擇)通過自己選擇的IPC通道(例如WCF)公開自己的特定API。

儘管如此,沒有什麼可以讓你做到這一點同步;任何類型的IPC都將是對服務端點的異步調用。

你需要在你的問題更具體。

用於與Windows服務交互的可用通用API基本上受限於;停止,開始,安裝,卸載。看看這裏:https://msdn.microsoft.com/en-us/library/windows/desktop/ms685942(v=vs.85).aspx

(如果你正在寫一個窗口服務,在Python,ZeroMQ將是一個非常合理的選擇,從一個命令行Python腳本與它進行交互;有任意數量的替代IPC的渠道蟒蛇這將是一樣的好)

-

要剛剛啓動服務,請嘗試:

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) 

鈮。除非您以管理員身份生成python實例,否則您將獲得訪問被拒絕的錯誤。

+0

感謝您的迴應,我的要求就像...我想開始第三方的Windows服務[如tomcat],並等待服務開始。 –

+0

您仍然無法同步執行此操作,但以下是您的示例:http://code.activestate.com/recipes/135700-win32-service-administration/ – Doug

+0

感謝堆@Doug。這真的對我有用:) –

相關問題