프로그램을 트레이 아이콘으로 보내기

프로그램 소스
     WATTray.zip
      백신류의 하나인 알약 소프트웨어 처럼 트레이에서 실행되는 방법을 알아 보겠습니다.
      컴퓨터를 사용하는 동안 계속 실행되어야 하는 프로그램에 많이 사용되는 방식입니다.
      트레이를 사용하는 프로그램 : 알약, 데몬(가상 CD), 사운드 관리 프로그램 등등

트레이아이콘
      기본적으로 제공되는 NotifyIcon 컨트롤이 사용됩니다.
      icon 을 꼭 지정해야 트레이 아이콘이 나타납니다. 만약 icon 값이 null 경우에는 표시되지 않습니다.
      폼 숨기기 : this.Hide();
      폼 보이기 : this.Activate();

     트레이 아이콘 보이기 : notifyIcon1.Visible = true;
     트레이 아이콘 숨기기 : notifyIcon1.Visible = false;

      트레이로 보내기
        private void ToTray()
        {
            this.Hide();
            notifyIcon1.Visible = true;
            notifyIcon1.ShowBalloonTip(100);
        }

트레이에서 풍선팁 보여주기
            notifyIcon1.ShowBalloonTip(100);

     

트레이 아이콘 위에 마우스를 올렸을 때
      notifyIcon1.Text = “트레이 아이콘”;
     

메인 소스

        public Form1()
        {
            InitializeComponent();
            notifyIcon1.Visible = false;
        }

        private void ToTray()
        {
            this.Hide();
            notifyIcon1.Visible = true;
            notifyIcon1.ShowBalloonTip(100);
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
            this.ToTray();
        }

        private void 종료ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            notifyIcon1.Visible = false;
            this.Dispose();
            Application.Exit();
        }

        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Visible = true; // 폼의 표시
            if (this.WindowState == FormWindowState.Minimized)
                this.WindowState = FormWindowState.Normal; // 최소화를 멈춘다
            this.Activate(); // 폼을 활성화 시킨다

            this.notifyIcon1.Visible = false;
        }

        private void Form1_MinimumSizeChanged(object sender, EventArgs e)
        {
            this.ToTray();
        }

        private void Form1_SizeChanged(object sender, EventArgs e)
        {
            if (FormWindowState.Minimized == WindowState)
                this.ToTray();
        }

원문은 http://whiteat.com/zbxe/37822 에 있습니다.


Leave a Comment