c# 通过程序来设置允许服务与桌面交互
2011-06-01 11:31
633 查看
我们写一个服务,有时候要让服务启动某个应用程序,就要修改服务的属性,勾选允许服务与桌面交互,
可以用修改注册表实现,我们必须在安装后操作,所以请重写Installer的OnAfterInstall。
但以上方法只能在重启后起到作用。。。若要想立即生效可以用以下代码代之,将此方法放入onAfterInstall即可
若想立即启动服务调System.ServiceProcess.ServiceController类来实现
可以用修改注册表实现,我们必须在安装后操作,所以请重写Installer的OnAfterInstall。
protected override void OnAfterInstall(System.Collections.IDictionary savedState) { RegistryKey rk = Registry.LocalMachine; string key = @"SYSTEM/CurrentControlSet/Services/" + this.sInstaller.ServiceName; RegistryKey sub = rk.OpenSubKey(key, true); int value = (int)sub.GetValue("Type"); if (value < 256) { sub.SetValue("Type", value | 256); } base.OnAfterInstall(savedState); }
但以上方法只能在重启后起到作用。。。若要想立即生效可以用以下代码代之,将此方法放入onAfterInstall即可
private void SetServiceDesktopInsteract(string serviceName) { ManagementObject wmiService = new ManagementObject(string.Format("Win32_Service.Name='{0}'",serviceName)); ManagementBaseObject changeMethod = wmiService.GetMethodParameters("Change"); changeMethod["DesktopInteract"] = true; ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", changeMethod, null); }
若想立即启动服务调System.ServiceProcess.ServiceController类来实现
相关文章推荐
- C# 建立服务程序 && 允许服务于桌面交互
- 设置c#windows服务描述及允许服务与桌面交互的几种方法
- 设置c#windows服务描述及允许服务与桌面交互
- 设置c#windows服务描述及允许服务与桌面交互的几种方法
- 设置c#windows服务描述及允许服务与桌面交互的几种方法(作者博客还有一大堆C#创建服务的文章)
- 设置c#windows服务描述及允许服务与桌面交互
- 设置c#windows服务描述及允许服务与桌面交互的几种方法
- C#设置服务允许与桌面交互,并且启动服务
- C#设置服务允许与桌面交互,并且启动服务
- C# 编写Windows服务并设置为“允许服务与桌面交互”
- 设置c#windows服务描述及允许服务与桌面交互的几种方法(转)
- C#允许服务与桌面交互实现浅析
- Windows服务安装后设置自动启动与允许服务与桌面交互的方法
- c# 允许服务与桌面交互
- C#允许服务与桌面交互
- 设置C# Windows 服务与桌面交互
- 用VS2003部署,让服务程序安装完后立即启动服务并且选中“允许服务与桌面交互”及添加服务描述的方法
- c# 允许服务与桌面交互(转)
- 设置Windows服务允许进行桌面交互,实现屏幕监控
- Windows服务安装后设置自动启动与允许服务与桌面交互的方法