用C# 写了个Windows服务程序,在服务运行中打开了另一个需要与桌面交互的进程。可以从控制面板中服务【属性】中【登陆】页面设置 “允许服务与桌面交互”完成。可是怎么用代码方式完成选择“允许服务与桌面交互”选项。求助又实际经验的高手帮忙?
解决方案 »
- 求一正则表达式
- 如何获取图片大小
- 动态表格sql语句查询
- C#邮件发不出去,找不原因
- 动态创建 LinkLabel 及事件处理程序
- 如何将webBrowser中显示的图片保存到本地,该图片是画出来的,没有URL,谢谢了
- 关于Frame的问题(新手请教)
- 在线等:DataGrid 怎样实现滚动条?
- webservice放在本地可以执行,如过放在网络上,我该怎么调用webservice
- 请教,如何得到当前日期是星期几啊?
- 关于引发事件的问题.......................................................................................
- Windows服务的工作目录问题
http://www.codeproject.com/csharp/CsWindowsServiceDesktop.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/changeserviceconfig.asphttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/changing_a_service_configuration.asp
using System.ServiceProcess;private void ServiceInstaller_AfterInstall(object sender, System.Configuration.Install.InstallEventArgs e)
{
ConnectionOptions coOptions = new ConnectionOptions();coOptions.Impersonation = ImpersonationLevel.Impersonate;ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2",coOptions);mgmtScope.Connect();ManagementObject wmiService;wmiService = new ManagementObject("Win32_Service.Name='" + ServiceController.ServiceName + "'");ManagementBaseObject InParam = wmiService.GetMethodParameters("Change");InParam["DesktopInteract"] = true;ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", InParam, null);ServiceController.Start();
}