*기본값 *별로 Windows에 프로그램 트레이 아이콘을 항상 표시하는 방법?

StackOverflow https://stackoverflow.com/questions/904790

  •  05-09-2019
  •  | 
  •  

문제

Windows 7에서 처음으로 프로그램이 실행되면 자동으로 아이콘을 숨 깁니다. Windows 7이 항상 기본적으로 아이콘을 표시하도록 강요하는 매니페스트 설정 또는 옵션이 있습니까?

도움이 되었습니까?

해결책

얼마 전 .Net Rocks Podcast에서 Microsoft의 Kate Gregory는 불가능하다고 말했습니다.

그녀는 다음과 같이 말했습니다 : "사용자가 원한다면 (트레이 아이콘) 거기에 넣을 것입니다." 그 이유는 트레이 영역의 혼란을 방지하기 때문입니다.

다른 팁

트레이 아이콘을 정말로 보여주고 싶다면 최소한의 텍스트로 풍선을 튀어 나오고 나중에 풍선을 숨기고 코드 예를 따르면 다시 그림자입니다.

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 초마다)을 반복하면 탐색기가 생각하기 때문에 트레이가 그곳에 머무를 것입니다. 아이콘에서 직접 마우스 오른쪽 버튼을 클릭하지 않는 것과 같은 몇 가지 사소한 문제가 여전히 있습니다.

실제로 사용자가 수동으로 수행하지 않고 각 업데이트에 대해 회사-소프트웨어에 대한 트레이 아이콘을 보여주었습니다. 그래서 이것은 누군가를 도울 것입니다 ... :)

그렇지 않으면 전적으로 동의합니다. 이것은 응용 프로그램에 의해 제어되지 않은 사용자의 손에 달려 있어야합니다.

확실히 "불가능"이 아닙니다. 문서화되지 않은 COM 인터페이스가 있습니다 ITrayNotify 트레이 아이콘을 검색하고 가시성을 변경하는 경우, 탐색기 자체가 사용합니다. 전체 C ++ 소스는 여기에 있습니다. http://thread0.me/tag/windows/

물론 비공식 API를 사용합니다 위험합니다 Windows 8 은이 API의 변화를 소개했습니다. 즉, XP -Win7 및 Win8 -Win10에 대해 2 가지 다른 정의를 사용해야합니다. 하지만 이봐, 심지어 Chrome 은이 트릭을 사용합니다. 실패를 올바르게 처리하십시오.

중복으로 표시된 질문 그것이 어떻게 수행되는지에 대한 답이 있습니다.

여기 링크가 있습니다 (대체 링크) 방법과 설명을 설명합니다 다음은 C# 코드입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top