gpt4 book ai didi

c# - 从窗口服务显示窗口窗体

转载 作者:行者123 更新时间:2023-11-30 13:48:20 26 4
gpt4 key购买 nike

我正在创建一个窗口服务。我的要求是在特定时间间隔显示窗口 NT 服务的窗口窗体。出于测试目的,我只想在服务启动时显示表单:

 protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart -before form show");

Messager_Form obj = new Messager_Form();
obj.Show();
// System.Diagnostics.Process.Start("calc.exe");
eventLog1.WriteEntry("In OnStart -after form show");
// timer1.Start();
}

它不工作。既没有显示表格,也没有运行计算过程。我找到了一些链接 showing pop up ,但其中大多数建议使用 WCF。没有wcf是不可能的。谁能告诉我实现这一目标的方法。

最佳答案

做不到*。在以后的操作系统中,不能像 Windows 服务一样工作的操作系统不允许与桌面交互 - 而是由 Windows 服务提供的 UI 显示在 Session 0 中。 ,一个特殊的登录 session ,通常对最终用户不可见。

您应该做的是编写一个单独的 Windows 窗体应用程序,该应用程序始终运行,但并不总是可见(可能有该应用程序 run at startup 并且在 notification area 中有一个图标)并使用一些与 Windows 服务通信IPC 的形式

当 Windows 服务希望向用户显示某些 UI 时,它会向应用程序发送一条消息,而应用程序又会向最终用户显示所需的 UI。

*或者至少绝对不应该这样做

关于c# - 从窗口服务显示窗口窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12953148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com