日期:2014-05-19  浏览次数:20956 次

如何判断当前程序是由Windows服务启动还是由用户启动?(120分难题求解)
.net里面编写Windows服务很这容易,它与普通的windows程序没什么不一样,Windows服务的启动代码为
ServiceBase.Run(new   ServiceBase());
一般Windows程序的启动代码为:
Application.Run(new   Form());

其它地方都一样,除了服务没有UI外(以特殊方式可以产生与用户交互的UI)。

现在我的难题是,如果是由net   start来启动我的程序,我需要执行ServiceBase.Run方法,而如果是用户双击鼠标或命令行执行,我则需要执行Application.Run方法。

有什么办法可以知道当前程序是由哪种方式执行的呢?

解决后再加送100分已示感谢。

------解决方案--------------------
每当程序启动时,无论是由服务运行还是用户双击动行也好,都要在程序的启动路径下建一个文本文件(其他格式也可), 以履盖的方式创建, 然后在文本中录入内容...
比如: 1 -> 为服务启动...
2 -> 为用户双击...

要想知道程序的启动方式.读取文件就可以啦...

这只是一种思路...