代码之家  ›  专栏  ›  技术社区  ›  Paul Farry

如何显示自动登录期间运行的NotifyIcon和SSDP服务

  •  0
  • Paul Farry  · 技术社区  · 16 年前

    我有一个应用程序(目标是.NETFramework2.0)正在系统启动时运行,我正在尝试显示一个NotifyIcon。

    如果我的应用程序在系统使用POSReady2009执行自动登录时启动(基本上是XP和单用户集)。然后NotifyIcon永远不会激活。

    如果随后(在计时器中)选中图标的.Visible,则它将始终报告它是Visible=true。

    如果禁用SSDPSrv并重新启动计算机,则图标将正确显示。 我怀疑这与安装在.NET2系统顶部的.NET3.5sp1有关。

    我是否应该遵循一些流程来确保我的NotifyIcon始终对用户可用。

    我已经准备好了 RegisterWindowMessage("TaskbarCreated") 但是我没有收到这个消息,除非你强制杀死Explorer.exe并重新启动它。即便如此,NotifyIcon还是会内部注册这些通知,因此不需要它。

    我很高兴暂停启动我的程序,但一旦程序启动,我希望图标显示正确。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Blind Trevor    16 年前

    隐马尔可夫模型。。。真奇怪。

    这可能不起作用,也可能不是最好的方法,但首先要尝试 NotifyIcon1.Visible = True 在加载事件中。

    如果这不起作用,为什么不试着把它加入计时器。。。

    NotifyIcon1.Visible = False
    NotifyIcon1.Visible = True
    

    让我知道这是否有效——如果不行,我会刮胡子,再想想!

        2
  •  1
  •   Paul Farry    16 年前

    嗯,这有点蠢,但是endedup需要修改启动过程来处理这个问题。

    使程序成为自己的快捷方式,由安装程序放入启动文件夹。

    触发它的程序不再自动启动它。相反,我们在启动后通知另一个程序(删除触发器文件)。

    另一个程序则监视用户是否关闭了我们或者我们只是崩溃并自动重新打开程序[如果您希望完全关闭系统,则需要遵循适当的流程]

    .visible= true 一切都很好。

    仍然保留着 RegisterWindowMessage 如果用户以某种方式杀死了windows资源管理器。

    推荐文章