C#Small Tray应用程序从Windows Server开始

时间:2015-01-07 11:37:30

标签: c# windows forms service

我在C#.NET 4.0中创建了一个Windows窗体托盘应用程序,它为Windows XP SP3做了一些随机的事情,不重要。

目的是使用Windows服务启动应用程序,并且应该以{{1​​}}运行,并选中“允许服务与桌面交互”。我理解安全隐患,并且服务并不意味着运行GUI等,但这是程序的重点,并且用于培训目的。

当我使用LocalSystem实用程序启动应用程序时它启动正常,但在大约10秒后它会指出“错误1053:服务没有及时响应启动或控制请求”

我已经看过许多其他没有运气的解决方案,例如:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/dac443c1-f2fc-49c6-bdd4-5426edc946ee/how-to-start-calcexe-from-windows-service-

我并不关心一个不错的编程示例。我可以创建一个服务然后让托盘应用程序称为API,但我不知道托盘应用程序是否将使用提升的privs运行,或者创建一个表单应用程序并破解它作为Windows XP服务运行或获得适当的服务启动exe作为我的托盘应用程序...

非常感谢任何示例或链接到编码示例等。

2 个答案:

答案 0 :(得分:1)

对于Windows服务,如果被覆盖的OnStart方法执行大量工作,您将得到"错误1053:服务未及时响应启动或控制请求"错误。

您可以调用ServiceBase.RequestAdditionalTime方法,并且需要足够的时间来执行所需的任何工作。

请参阅http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.requestadditionaltime%28v=vs.110%29.aspx以获取参考资料。

答案 1 :(得分:0)

以防万一发生在其他人身上。我刚刚使用了Windows 2003资源工具包并使用了'SRVANY'。

此处提供更多信息: http://support.microsoft.com/kb/137890

在这里: http://www.tacktech.com/display.cfm?ttid=197

我只是按照说明操作,除了勾选服务“允许服务与桌面交互”中的复选框

感谢Answer Dietz,它可能是让它正常工作的正确方法,但这只是一个简单的黑客攻击。