2014-09-24 4 views
1

내 응용 프로그램에서 시스템 네트워크 아이콘을 설정/해제하려면 제어판을 통해 수행 할 수있는 작업을 좋아합니다. "HideSCANetwork"레지스트리 항목을 알고 있지만이 솔루션을 사용하려면 설정을 변경 한 후 탐색기를 다시 시작해야합니다. 시스템과 같이 원활하게이 작업을 수행 할 수있는 다른 솔루션이 있습니까?프로그래밍 방식으로 Windows 시스템 네트워크 아이콘을 켜고 끄는 방법

Example

+0

응용 프로그램에 권한이 없으므로 사용자의 독점권입니다. –

+0

기업 환경에서는 GPO를 사용하지 않도록 설정할 수 있습니다. 다른 환경에서는 그대로 둘 수 있습니다! 이 경우 자신을 위해 레지스트리 키를 업데이트 한 후 WM_SETTINGCHANGE 브로드 캐스트 시도하십시오. –

답변

1

는 thois을 수행하기위한 공식적인 API가 없습니다. 그 이유는 Microsoft가 사용자에게 알림 영역이 너무 꽉 차는 것을 막을 수 있기를 원했기 때문입니다. 문제는 사용자가 신경 쓰지 않는 알림 아이콘을 시작하는 응용 프로그램이 너무 많다는 것입니다.

많은 사용자가이 아이콘을 제거하는 방법을 모르기 때문에 Microsoft는 기본적으로 숨기기로 결정했습니다. 응용 프로그램이 이러한 숨기기/표시 설정에 액세스 할 수있는 경우 응용 프로그램은 기본적으로 알림을 표시하고 우리가 시작한 곳으로 돌아갑니다. 따라서 프로그래밍 방식으로 이러한 설정을 수정하기위한 메커니즘은 제공되지 않습니다.

당신은 똑같이 악의적 인 것, 즉 중요한 시스템 아이콘을 숨기려면 뭔가 다른 것을하고 싶습니다. 이 작업을 수행하기로 결정한 경우 설정이 저장되는 방식 (레지스트리에있을 가능성이 있음)을 리버스 엔지니어링하고 해당 방식으로 설정을 변경할 수 있습니다. 그러나 그렇게하면 시스템 디자인에 반대하게됩니다.

+0

데이비드에게 감사드립니다. 내 응용 프로그램 (네트워크 관련 기능 제공)은 알림 영역의 시스템 네트워크 아이콘과 유사한 아이콘을 표시합니다. 두 개의 유사한 아이콘을보고 싶지 않은 사용자가 응용 프로그램을 실행하는 동안 시스템을 숨길 수 있도록 응용 프로그램에서 설정 항목을 만들고 싶습니다. – Shawnone

0

이제 불완전한 해결책을 찾았습니다. 기본적인 아이디어는 여기에서 온다 : http://www.codeproject.com/Articles/10807/Shell-Tray-Info-Arrange-your-system-tray-icons

몇 가지 팁 :

  • 이 솔루션은 윈도우 7을 지원, 당신은 XP 확인 코드를 제거 할 수 있습니다. 당신이 (팁 텍스트 플러스 소유자 프로세스를 사용하여) 숨길 아이콘을 찾을 때, TB_HIDEBUTTON 메시지를 보내

    struct TRAYDATA 
    { 
        DWORD64 hwnd; 
        UINT uID; 
        UINT uCallbackMessage; 
        DWORD Reserved[2];  
        DWORD64 hIcon;    
    }; 
    
    typedef struct _TBBUTTON64 
    { 
        int iBitmap; 
        int idCommand; 
        BYTE fsState; 
        BYTE fsStyle; 
        BYTE bReserved[6]; 
        DWORD64 dwData; 
        DWORD64 iString; 
    } TBBUTTON64, NEAR* PTBBUTTON64, *LPTBBUTTON64; 
    typedef const TBBUTTON64 *LPCTBBUTTON64; 
    
  • :
  • 는 WOW64에, 당신은 TBUTTON64를 구조체 TRAYDATA을 변경하고 사용할 필요가 알림 영역 창으로 이동하십시오.

불완전한 부분은 트레이 아이콘이 숨겨져 있지만 알림 영역의 크기가 조정되지 않는다는 것입니다. 따라서 알림 영역에 빈 공간이 있습니다.

관련 문제