Pergunta

Se um programa é executado pela primeira vez no Windows 7, ele esconde automaticamente o ícone. Existe alguma configuração manifesto ou opção para forçar o Windows 7 para mostrar sempre o ícone por padrão?

Foi útil?

Solução

Em .NET Rochas podcast, não muito tempo atrás, Kate Gregory da Microsoft estava dizendo que é impossível.

Ela disse algo como: "Se o usuário quer que ele (bandeja ícone) ele / ela vai colocá-lo lá". Razão para isso é para evitar confusão na área da bandeja.

Outras dicas

Se você realmente quer mostrar o seu bandeja-ícone, pode aparecer um balão com texto mínimo e apenas depois esconder o balão e da sombra novamente seguindo o código-exemplo:

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

Se você repetir isso (por exemplo, a cada 30 segundos), o seu trayicon vai ficar lá porque explorer.exe pensa, não é um balão aberto para exibir para o usuário. Um menor algumas questões - tais como o direito-clique diretamente no ícone -. Ainda estão lá

Eu realmente usado para mostrar o ícone da bandeja para a nossa empresa-software onde o usuário não se destinam a fazer isso manualmente e para cada atualização. Então talvez isso ajude alguém ...:)

Caso contrário, eu concordo totalmente: Este deve ser apenas em mãos do usuário, não controlado pelo aplicativo

.

É certamente não "impossível". Há uma ITrayNotify interface COM não documentada para recuperar ícones da bandeja e alterar a sua visibilidade, usado por si só Explorer. Completa C ++ fonte aqui: http://thread0.me/tag/windows/

Claro, usando uma API não oficial é arriscado e Windows 8 tem intoduced alterações significativas a esta API, o que significa que você tem que usar 2 definições diferentes para o XP - Win7 e Win8 - Win10. Mas hey, mesmo Chrome utiliza esta enganar . Apenas certifique-se de lidar com falhas corretamente.

A marcado como duplicado tem a resposta de como ele é feito.

Aqui está uma link ( alternativa ligação ) que explica como e aqui é código C # .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top