1.问题描述
最近遇上一个难题,我写了一个windows服务,想要与桌面可以进行交互,设置了属性在运行一点反应也没有。
2.解决方案
查找出来的解决方案有以下这些(一个代码块一个):
1 [RunInstaller(true)] 2 public partial class ProjectInstaller : System.Configuration.Install.Installer 3 { 4 public ProjectInstaller() 5 { 6 InitializeComponent(); 7 } 8 9 protected override void OnAfterInstall(IDictionary savedState) 10 { 11 try 12 { 13 base.OnAfterInstall(savedState); 14 System.Management.ManagementObject myService = new System.Management.ManagementObject( 15 string.Format("Win32_Service.Name='{0}'", this.serviceInstaller1.ServiceName)); 16 System.Management.ManagementBaseObject changeMethod = myService.GetMethodParameters("Change"); 17 changeMethod["DesktopInteract"] = true; 18 System.Management.ManagementBaseObject OutParam = myService.InvokeMethod("Change", changeMethod, null); 19 } 20 catch (Exception) 21 { 22 } 23 } 24 }