2015년 2월 23일 월요일

C# Winfrom 실행시 바로 트레이 아이콘으로 가게 하기

프로그램을 짜다 보면 사용자의 눈에 안띄게 프로그램해야 할 경우도 있다.

이런경우 그냥 실행시 프로그램의 visible 를 False 로 하고, 트레이 아이콘을 등록해 주면 된다.


간단하게 폼 하나를 추가하고.


notifyIcon 컨트롤을 추가해 준다.


보여줄 아이콘이 지정되어 있지 않으면 notifyIcon 을 등록해도 소용이 없으므로, 적당한 아이콘을 찾아 지정해 준다.


제대로 지정했으면 지정한 아이콘이 보일 것이다.



그리고, ContextMenuStip 를 하나 추가해 준다.
물론 없어도 실행하는데는 별 상관이 없지만, 이게 없으면 정상적인 방법으로는 실행시킨 프로그램을 종료할 방법이 없어지므로 추가해 준다.


실행 폼이 여러개라면 맨처음에 실행될 frmStart 를 시작 폼으로 기록해 둔다.


시작 폼에 위와 같이 소스를 작성한다.

public frmStarter()
        {
            InitializeComponent();

            this.WindowState = FormWindowState.Minimized;
            this.ShowInTaskbar = false;
            this.Visible = false;
            this.notifyIcon1.Visible = true;
            notifyIcon1.ContextMenuStrip = contextMenuStrip1;
        }

        private void 종료ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

이렇게 하고 실행하면...


아무런 액션이 일어나지 않지만, 트레이에 자세히 보면 새로운 아이콘이 등록된것이 보인다.
당연한 말이지만, 트레이아이콘 마져 등록하지 않으면, 아무런 표시없이 실행되게 할 수도 있다. (물론 프로세스 목록에선 나타나겠지만...)


ContextMenuStip 가 등록되어 있으므로 마우스 오른쪽 버튼을 클릭시 팝업 메뉴가 나타나고 "종료"를 선택시 프로그램이 종료된다.