C# 修改注册表 达到 Windows Services 启动 窗体应用程序

时间:2022-09-05 07:56:49
RT,利用下面这段代码已经在表面上实现了(就是可以把Windows服务属性中的allow service to interact with desktop选项钩上了),但是功能仍然不好使,请高手指点。代码如下:

RegistryKey SystemKey = Registry.LocalMachine.OpenSubKey("System", true);
RegistryKey CurrentControlSetKey = SystemKey.OpenSubKey("CurrentControlSet", true);
RegistryKey ServicesKey = CurrentControlSetKey.OpenSubKey("Services", true);
RegistryKey sVCKey = ServicesKey.OpenSubKey(sVCName, true);
if (sVCKey != null)
{
    if (sVCKey.GetValue("Type") != null)
    {
        //sVCKey.SetValue("Type", ((int)sVCKey.GetValue("Type") | 256));
        sVCKey.SetValue("Type", 272, Microsoft.Win32.RegistryValueKind.DWord);
    }
}

25 个解决方案

#1


路過...

#2


不明白,关注

#3


功能不好使,呵呵 高手解答

#4


顶一下

#5


rczjp(开着宝马做爱) ( ) 信誉:100  2007-7-31 16:15:34  得分: 0  
 
 
   
功能不好使,呵呵 高手解答

  
 
------------------------------------------------------
这个NB

#6


顶下

#7


是是

#8


帮顶了

#9


再顶

#10


晕。晚上回来看看,做事了。。。

#11


http://caca.cnblogs.com/archive/2005/02/25/109028.aspx


Windows的服务中,不能有System.Windows.Forms的托管窗体。
详情请看:
http://topic.csdn.net/t/20050912/12/4263534.html

#12


Windows的服务中可以运行System.Windows.Forms的托管窗体,只要把服务属性里的allow service to interact with desktop选项钩上了,就可以与窗体程序交互。

现在问题是手动钩上一切正常,如果用程序修改注册表钩上的就不好使,还需要手动重新钩上才行!

#13


先顶

#14


不会

#15


那有没有会的啊,高手们啊!!

#16


高手,高手,高手

#17


等待 高手

#18


仍在等待

#19


ding

#20


该回复被版主删除

#21


改注册表..要重启才生效

#22


试过用程序重起,无效; 试过手动重起,仍然无效。

#23


请问重起是指重起“机器”还是重起“服务”呢

#24


请问重起是指重起“机器”还是重起“服务”呢








#25




修改了注册表无法马上生效,必须重新启动系统之后才能生效。要修改服务配置之后马上生效,必须使用SCM API.

详细参照:
http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.languages.csharp/2006-04/msg00990.html

#1


路過...

#2


不明白,关注

#3


功能不好使,呵呵 高手解答

#4


顶一下

#5


rczjp(开着宝马做爱) ( ) 信誉:100  2007-7-31 16:15:34  得分: 0  
 
 
   
功能不好使,呵呵 高手解答

  
 
------------------------------------------------------
这个NB

#6


顶下

#7


是是

#8


帮顶了

#9


再顶

#10


晕。晚上回来看看,做事了。。。

#11


http://caca.cnblogs.com/archive/2005/02/25/109028.aspx


Windows的服务中,不能有System.Windows.Forms的托管窗体。
详情请看:
http://topic.csdn.net/t/20050912/12/4263534.html

#12


Windows的服务中可以运行System.Windows.Forms的托管窗体,只要把服务属性里的allow service to interact with desktop选项钩上了,就可以与窗体程序交互。

现在问题是手动钩上一切正常,如果用程序修改注册表钩上的就不好使,还需要手动重新钩上才行!

#13


先顶

#14


不会

#15


那有没有会的啊,高手们啊!!

#16


高手,高手,高手

#17


等待 高手

#18


仍在等待

#19


ding

#20


该回复被版主删除

#21


改注册表..要重启才生效

#22


试过用程序重起,无效; 试过手动重起,仍然无效。

#23


请问重起是指重起“机器”还是重起“服务”呢

#24


请问重起是指重起“机器”还是重起“服务”呢








#25




修改了注册表无法马上生效,必须重新启动系统之后才能生效。要修改服务配置之后马上生效,必须使用SCM API.

详细参照:
http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.languages.csharp/2006-04/msg00990.html