自己写的windows 服务中怎么调用C#窗体

自己写的windows 服务中怎么调用C#窗体,第1张

protected override void OnStart(string[] args)

{

// TODO: 在此处添加代码以启动晌李闹服扰陪务。

FileStream fs = new FileStream("d://a.txt",FileMode.Create)

StreamWriter sw = new StreamWriter(fs)

sw.Write(DateTime.Now+" wjj")

sw.Flush()

sw.Close()

fs.Close()

Process.Start("notepad.exe") //宴罩调不出来}

不能这样做,最近几个windows *** 作系统,windows服务不态枯虚能与桌面UI发生交互,这称为Session 0隔离,参见:

https://msdn.microsoft.com/en-us/library/windows/desktop/bb756986.aspx

你可以做一个单独的windows窗体程序,平时隐藏显示。使用Timer组件做轮询败桐检查,如果检测到一定的条件,就调用Show()函帆燃数d出就可以了。

修改注册表

在“开始→运行”中键入“regedit.exe”,打开“注册表编辑器”,展开分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”,在右侧窗格中袜滚山显示的就是本机安装的服务项。

如果要新建服务,只须点击“编辑→新建→项”,然后为此项命名,如“test”;然后右击该项,选择“新建→字符串值”或“新建→DWORD值”即可。添加一个服务项目具体需要添加的键值如下:

“DisplayName”,字符串值,对应服务名称;

“Description”,字符串值,对应服务描述;

“ImagePath”,字符串值,对应该服务程序所在的路径;

“ObjectName”,字符串值,值为“LocalSystem”,表示本地登录;

“ErrorControl”,DWORD值,值为“1”;

“Start”,DWORD值,值为2表示自动运行,值为3表示手动运行,值为4表示禁止;

“Type”,DWORD值,应用程序对应10,其它对应20。

另外,还要在“test”项下新建一个“Enum”项。按照以上步骤添加QQ程序为服务,重新启动计算机后,打开“服务”窗口,就可以看到刚才添加的QQ服务告中。

如果要删除某项服务,只要删除注册表的中相关键值即可,本备橘例中要删除QQ服务,直接删除“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\test”分支即可


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12329325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存