如果程序是执行第一次在Windows7时,它会自动隐藏的图标。是否有任何清单的设定或选项强制Windows7始终显示图标默认情况下?

有帮助吗?

解决方案

在.NET岩石的播客,不是很久以前,微软凯特·格雷戈里说,这是不可能的。

她说是这样的:“如果用户想它(托盘图标),他/她将会把它放在那里。” 之所以这样,是为了防止在乱七八糟托盘区。

其他提示

如果你真的想显示你的托盘图标,即可弹出一个气球用最少的文字,只是事后隐藏气球,并通过下面的代码,例如再次的影子:

trayIcon.ShowBalloonTip(30000, "", ".", ToolTipIcon.None)

Dim balloonHandle As IntPtr = GetBalloonHwnd(balloonText) ' mainly: FindWindow("tooltips_class32", Nothing)

If (balloonHandle <> IntPtr.Zero) Then
  Dim sysShadowClassHwnd As IntPtr = FindWindow("SysShadow", Nothing)

  ' will hide balloon and leaving a small shadow artifact - just for this balloon
  PostMessage(balloonHandle, WM_SETREDRAW, IntPtr.Zero, IntPtr.Zero)
  SetWindowPos(balloonHandle, IntPtr.Zero, 0, 0, 0, 0, SWP_HIDEWINDOW)

  If (sysShadowClassHwnd <> IntPtr.Zero) Then
    ' this will remove the small shadow artifact
    PostMessage(sysShadowClassHwnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero)
  End If
End If

如果您重复(例如每30秒),你的任务栏图标会在那里住,因为Explorer.exe中认为,有打开并显示给用户的气球。一些小的问题 - 如不直接在图标上单击右键 - 仍然存在。

我真的用来展示我们在用户不打算手动和每个更新有这家公司的软件的托盘图标。因此,也许这将帮助别人...:)

否则,我完全同意:这应该是只在用户,而不是由应用程序来控制的手

这当然不是“不可能”。有检索托盘图标并改变它们的可见性,通过资源管理器本身使用一个未公开的COM接口ITrayNotify。这里完整的C ++源: http://thread0.me/tag/windows/

当然,使用非官方API 是有风险的和Windows 8已经intoduced重大更改这个API,这意味着你必须使用2点不同的定义为XP - Win7和Win8的 - Win10。但是,嘿,甚至 Chrome使用此欺骗。只是一定要妥善处理故障。

一个 问题标明为重复的 有的答案,它是如何做。

这里有一个链接 (备用的链接),说明如何以及何 这里是C#代码.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top