我有 ac# 应用程序,它作为 Windows 服务运行,控制套接字连接和其他东西。此外,还有另一个 Windows 窗体应用程序来控制和配置此服务(带有启动、停止、显示配置参数的表单的系统托盘)。
我正在使用 .net 远程处理进行 IPC,这很好,但现在我想显示一些真实的流量和其他报告,远程处理无法满足我的性能要求。所以我想将这两个应用程序合二为一。
这是问题所在:
当我从 Windows 服务启动表单时,什么也没发生。谷歌搜索我发现我必须右键单击该服务,转到登录并选中“允许服务与桌面交互”选项。因为我不想让我的用户这样做,所以我在安装期间再次进行了一些代码谷歌搜索以在用户的 regedit 中设置此选项。问题是即使设置了这个选项,它也不起作用。我必须打开服务的登录选项(已选中),取消选中并再次检查。
那么,如何解决呢?在同一进程中拥有带有系统托盘控件的 Windows 服务的最佳方式是什么,可供任何登录用户使用?
更新:感谢到目前为止的评论,伙计们。我同意使用 IPC 更好,而且我知道混合 Windows 服务和用户界面是不好的。尽管如此,我想知道如何做到这一点。