coding/c#

C# 보이지 않는 윈도우폼 만들기 + 작업관리자에서 프로그램 숨기기(taskbar hide) ShowInTaskbar, FormWindowState.Minimized

100a 2020. 3. 30. 09:41

 

 

이번 프로그램은 보이지 않는 윈도움 폼을 만들어봤는데요 .

더해서 아래의 그림과 같이 프로그램을 작업표시줄에서 숨겨보도록 하겠습니다.

 

프로그램이 숨겨짐

 

보이지 않는 윈도우 폼은 2가지 방법을 제시 했습니다.

1번 this.WindowState = FormWindowState.Minimized; 로 작업표시줄을 최소화 하는 방법과

가장 간단한 2번 this.Opacity = 0; 로 폼의 Opacity를 투명하게 만드는 방법이 있는데

되도록 1번과 같이 하는것을 추천합니다.

이유는 2번의 방법을 사용할 경우 간혹 타 프로그램이나

윈도우즈 바탕화면의 repaint와 같은 이벤트가 발생할경우 opacity로 숨겨놓은 윈도우가 나타났다가

사라지는 깜박임 현상이 있을 수 있습니다.

 

아래 간단히 코드블록 올리겠습니다.

자세한 내용은 코드블록 아래에 ZIP파일 다운 받으시기 바랍니다.

 

        //title : 보이지않는 프로그램 만들기.

        /*
         프로그램 작성 시 작업표시줄 및 작업관리자 목록에 보이지 않는 프로그램을 만들어야 할 때, 사용하면 좋은 소스.
        */

        private void Form1_Load(object sender, EventArgs e)
        {           
            this.ShowInTaskbar = true; // 작업표시줄에 프로그램 나타남 - 기본

            this.ShowInTaskbar = false; // 작업표시줄에 프로그램 숨김.

           
            //보이지 않는 윈도우폼 만들기 1번
            /*
            this.ShowInTaskbar = false; 구문을 응용하여 this.WindowState = FormWindowState.Minimized; 함께 작성시 프로그램을 완전 숨길 수 있다.
            */
            this.ShowInTaskbar = false;
            this.WindowState = FormWindowState.Minimized; // 폼 작업표시줄로 최소화



            //보이지 않는 윈도우폼 만들기 2번 
            /*
              폼의 투명도를 조절하여 1번과 비슷하게 프로그램을 화면에서 숨길 수 있다.
              폼의 투명도를 조절하여 프로그램을 숨기는 방법보단 1번에서 처럼 프로그램을 작업표시줄로 minimize한 후 작업표시줄에서 지우는것을 추천.
              이뉴는 2번의 방법을 사용할 경우 간혹 타 프로그램이나 윈도우즈 바탕화면의 repaint와 같은 이벤트가 발생할경우 opacity로 숨겨놓은 윈도우가 나타났다가
              사라지는 깜박임 현상이 있을 수 있다.
            */
            this.ShowInTaskbar = false;
            this.Opacity = 0; // 폼의 투명도를 0로 하여 보이지 않게 한다.

            // 1번 구문 + CreateParams ExStyle I = 0x80; 구문을 통하여 보이지 않는 숨겨진 프로세스 구동이 가능하다.
        }

        protected override CreateParams CreateParams // CreateParams 오버라이드 후 cp.ExStyle |= 0x80; 해당 내용 코딩
        {
            get
            {              
                CreateParams cp = base.CreateParams;

                cp.ExStyle |= 0x80; // 코딩 시 작업관리자 응용프로그램 목록에 프로그램 타이틀 나타나지 않음.

                return cp;
            }
        }

 

HideTaskBar_TaskManager.zip
0.09MB

'coding > c#' 카테고리의 다른 글

C# 메세지박스 15종 MessageBoxButtons, MessageBoxIcon  (1) 2020.03.26