我开发了 win 服务程序,它从本地驱动器读取 Excel 文件,然后将此文件值保存到数据库,现在我想开发一个通知图标,该图标将在之后显示一条消息(“Excel 文件已保存在数据库中”)我的服务将启动并将 Excel 文件保存到数据库。
请给我一些提示来解决这个问题。
从 Vista 开始,您的服务将不允许与桌面交互,因此无法直接在服务之外运行 UI。您需要构建一个在用户登录时启动的代理应用程序,该应用程序可以与您的服务聊天(可能使用 WCF)。
这是什么MS不得不说 http://msdn.microsoft.com/en-us/windows/hardware/gg463353.aspx关于这样做:
对于更复杂的交互,开发人员应将其 UI 代码移至在用户会话中运行并处理所有 UI 要求的代理中。代理通过 RPC 或命名管道与服务进行通信。如果用户使用控制面板、Internet Explorer 或类似的 UI 体验启动 UI 交互,则该 UI 体验应启动代理。然后代理处理所有 UI 交互。如果需要 UI 但不是由用户启动,则服务必须请求代理启动任何所需的 UI,而不是尝试自行启动该 UI。在服务必须启动用户交互且代理尚未运行的极少数情况下,服务应调用 CreateProcessAsUser API 来启动代理。然后,代理可以启动所有 UI 交互。对于开发人员来说,仔细检查所有可能的使用场景并考虑将所有 UI 代码移至在用户会话中运行的代理中非常重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)