C#代码可以调用系统的windows服务吗

 我来答
Tech_Monkeye5
2018-04-16 · TA获得超过984个赞
知道小有建树答主
回答量:330
采纳率:92%
帮助的人:75.7万
展开全部

windows服务,你指的应该是NT Services服务,也就是那些工具中写服务中的选项。

如果是windows服务控制方面的,那么可以调用sc命令方式或是直接调用都是可以的,这里仅限对某个特定服务的启动/停止等操控。

如果是windows服务内的数据,答案是不可以的,当然,这与语言或开发没有关系的。在windows vista以上的版本中,windows的服务是运行在session 0中的,而应用程序运行在sisseion n(1,2,3 eg.)。所以无法直接调用!

但是,不可以调用,但不是说没有办法了。windows 服务要想与应用程序通信,办法还是有很多的!

第一种办法:传统调用的windows服务,windows服务中有一个属性,是否允许与应用程序交互,如果要调用windows服务必须先将此属性勾选上!当然这是一个必要条件,第二步要做的是如果跨session通信。这个在msdn上有一篇关于windows 7的跨session通过,就是在session 1中跟windows服务通信的一个跨session通信,最终实现了与session 0中的windows服务通信。

第二种办法:交互可以考虑使用wcf的方式,这种方法有点类似于后门程序,但却是微软提倡使用的方式,相较于传统的windows服务交互,这种方式结构较为简单。

第三种办法:数据文件交互,其实与wcf的方式没有多大的区别,但这种交互只是大的方向,适用于批量处理之类的数据进行分批处理。它没有任何技术含量,适用各个异构模块。就算不同系统之间也可以按照这种方式处理!

给你一个连接:网页链接,这就是有关于session 0隔离的原理及交互的方案。

帐号已注销
2018-04-16 · TA获得超过171个赞
知道小有建树答主
回答量:119
采纳率:82%
帮助的人:56.5万
展开全部
你想调用什么服务,举个例子。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式