【问题标题】:NotifyIcon on startup启动时的通知图标
【发布时间】:2010-09-28 15:46:11
【问题描述】:

我试图在 Windows 启动时使用 NotifyIcon 组件为我的程序制作一个可见的托盘图标。

程序本身运行良好,托盘图标显示出来。

但是,当我将程序置于计算机启动时,托盘图标并不总是出现,而程序本身运行时没有任何问题,并且它的主窗口是可见的。

这里不涉及自定义代码,所有代码都是自动生成的。

在 Windows 7 Ultimate 上运行。

如何使托盘图标始终显示在 Windows 启动中?

【问题讨论】:

标签: c# .net winforms notifyicon trayicon


【解决方案1】:

在windows启动中

如果您的意思是您正在运行操作系统启动时间(例如,通过向 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 添加条目或使用服务),则该进程正在另一个会话中运行并且无法访问 UI。

如果您希望进程在操作系统启动时运行并且具有交互性,您将需要两个应用程序:一个在启动时运行并公开某种形式的进程间通信 (IPC),以及两个使用第一个应用程序 IPC 与其通信的 UI 应用程序。

您还(取决于您的目标用户)可能需要考虑以下情况:(1) 没有人登录系统(例如无头服务器),以及 (2) 多个用户登录(例如远程桌面连接到共享系统)。

过去可以配置服务以将项目添加到控制台用户的 UI,但在 Vista 中被阻止(因为它打开了安全漏洞)。

【讨论】:

    【解决方案2】:

    您可能会在隐藏的图标中找到它。在 Win7 上单击“显示隐藏图标”箭头,单击自定义并覆盖该行为。

    【讨论】:

    • 谢谢,但这不是问题,我的托盘图标也不存在。
    • 不知道,没听说过这个问题。看看当你把 System.Threading.Thread.Sleep(5000) 放在 Main 方法中会发生什么,给任务栏足够的时间来完全初始化。
    • 谢谢,您对 Thread.Sleep(5000) 的建议增加了托盘图标出现的机会,但仍然不是 100%。
    • 痛苦,到目前为止你多久重启一次?从未听说过 Win7 上的托盘初始化问题,但听起来就是这样。增加延迟。
    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2023-03-23
    相关资源
    最近更新 更多