簡體   English   中英

如何從C#p /調用ChangeServiceConfig2?

[英]How to p/invoke ChangeServiceConfig2 from c#?

我想p /調用Windows api函數ChangeServiceConfig2來設置服務的描述和/或“啟動延遲”標志(可能還有更多)。 特殊的是,它需要根據您要更改的內容指向不同的結構。

例如,要更改服務的描述文本,您需要將其指向SERVICE_DESCRIPTION結構,並且要更改延遲標志,請指向SERVICE_DELAYED_AUTO_START_INFO結構。

我通過創建api函數的幾個重載來解決此問題,如下所示:

   private static extern bool ChangeServiceConfig2(IntPtr hService, int dwInfoLevel, [MarshalAs(UnmanagedType.Struct)] ref SERVICE_DESCRIPTION lpInfo);
   private static extern bool ChangeServiceConfig2(IntPtr hService, int dwInfoLevel, [MarshalAs(UnmanagedType.Struct)] ref SERVICE_DELAYED_AUTO_START_INFO lpInfo);

我想問問是否有更好的解決方案,如果我想完整地制作原型,則不需要另外十幾個重載?

只是查看了ServiceInstaller類的代碼,發現他們正在以相同的方式進行操作,因此這不會是完全錯誤的...

不過,仍然開放征求意見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM