从Windows服务启动WindowsApplication问题,求方案

skison 2008-11-18 02:14:09
目前有个需求,需要在一个Windows服务中启动一个WindowsApplication。

但是从服务中启动的WindowsApplication好像不能正常执行,调用一些System.Windows.Forms中的组件功能都失效。

怎么办才好?是否有什么参数可以配置。

是否无法实现,因为svchost是在windows登录前开始运行的,具体什么原因?

请那位讲解下,谢谢!
...全文
128 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
skison 2008-11-19
  • 打赏
  • 举报
回复
回一楼:
可行,谢谢。

回三楼:
MSDN的说明:
————————
Windows 服务应用程序在不同于登录用户的交互区域的窗口区域中运行。窗口区域是包含剪贴板、一组全局原子和一组桌面对象的安全对象。由于 Windows 服务的区域不是交互区域,因此 Windows 服务应用程序中引发的对话框将是不可见的,并且可能导致程序停止响应。同样,错误信息应记录在 Windows 事件日志中,而不是在用户界面中引发。

.NET Framework 支持的 Windows 服务类不支持与交互区域(即登录用户)进行交互。同时,.NET Framework 不包含表示区域和桌面的类。
————————
说简单点就是,在Windows服务中用不了System.Windows.Forms.MessageBox以及Clipborad等等。

但是我没想到的是在ServicesBase的子类中,采用Process.Start()的方式启动的另外一个进程(很简单的Hello World进程),都无法呈现界面,甚至于我指定的StartInfo是用户登录的方式,不是使用的服务默认的System用户。


yilanwuyu123 2008-11-18
  • 打赏
  • 举报
回复
mark 做服务的时候没遇见过此类问题

估计可能是线程起的问题
hwk5 2008-11-18
  • 打赏
  • 举报
回复
试试用shell启动.
dayizhixiaotutu 2008-11-18
  • 打赏
  • 举报
回复
serive 不能和应用程序交互 你的服务属性 有个选项"是否与桌面交互" 你把它勾上

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧