ControlService API允許向Win32服務發送控制代碼。但是,如果我需要發送(並接收)不止一個控制代碼呢?在用戶模式GUI Win32應用程序和Win32服務之間建立通信以交換任意數據的最佳方式是什麼? (假設我可以編譯服務和應用程序)。該方法應該可以從Windows 2000工作到Windows 7,並且它應該適用於管理員和標準用戶。謝謝!使用Win32服務進行進程間通信
回答
你幾乎可以使用任何IPC機制。如果您的服務和應用程序基於.net,那麼最常見的解決方案是使用WCF。對於本地代碼服務和應用程序,一個非常常見的解決方案是命名管道。但是最好的選擇取決於您的具體使用需求。
服務會話隔離怎麼樣?命名管道是否允許跨會話進行通信? –
@Andrei是的,這沒問題。命名管道需要被正確保護,但是跨會話沒有限制。 –
好的,謝謝,我會嘗試一個命名管道,看看它是怎麼回事。如果它運作良好,我會接受你的回答:-) –
聽起來好像您打算讓服務響應遠程請求。爲此,您可以使用命名管道,如前所述。然而,命名管道比TCP套接字稍微複雜一些。
如果您採用TCP套接字編程(socket()
,bind()
,listen()
等),您將能夠將該知識移植到其他平臺。
一個誠實的問題。爲什麼命名管道比套接字更復雜?我想了解更多。 –
訪問由匿名用戶命名的管道在Windows 7時間框架中變爲只讀:http://blogs.technet.com/b/nettracer/archive/2010/07/23/why-does-anonymous-pipe-access -fail-on-windows-vista-2008-windows-7-or-windows-2008-r2.aspx –
但是'''socket()'''是永遠的。 –
- 1. 通過服務線程進行通信
- 2. 如何在C#中進行進程間通信時進行進程間通信?
- 3. 使用進程間通信
- 4. Windows服務和網絡服務之間的進程間通信
- 5. python守護進程+進程間通信+ web服務器
- 6. angularjs:使用服務在控制器之間進行通信
- 7. 使用Amazon SWF在服務器之間進行通信
- 8. 在Windows服務和Exchange服務器之間進行通信
- 9. 進程間通信
- 10. 進程間通信
- 11. 進程間通信
- 12. 使用WebSocket進行服務器 - 服務器通信
- 13. 使用WCF服務進行Windows移動和服務器通信?
- 14. android在遠程服務和活動之間進行通信
- 15. 如何使用WCF在應用程序和Windows服務之間進行通信?
- 16. 使用c#進行兩個進程之間的通信#
- 17. 如何使用FIFO在python子進程之間進行通信
- 18. 使用環境變量進行簡單進程間通信
- 19. 使用意圖過濾器進行進程間通信
- 20. 使用Messengers和Binders進行進程間通信
- 21. Win32 ::串行二進制通信
- 22. C#.net windows服務與遠程web服務進行通信
- 23. 如何與服務進行通信
- 24. 與活動的服務進行通信
- 25. 使用rxjava進行分段間通信
- 26. 用於進程間通信的wcf服務
- 27. 使用GA庫的進程間通信
- 28. 使用管道的進程間通信
- 29. 使用vbscript的進程間通信
- 30. Angular 2通過服務進行通信而不使用主題
最好的辦法是最好的解決你的問題。您可以使用DCOM或SOAP Web服務,套接字或命名管道,或... – bmargulies
編輯:我應該google更好:發佈問題後,我發現下面的文章,解釋它一切都很好: http://www.codeproject.com/KB/vista-security/interaction-in-vista.aspx –