예제 #1
0
        /// <summary>
        /// 임시 촬영 버튼 구현 (추후 단축키로 구현한 후 삭제)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            if (status.selectedMode == 0) // 전체화면
            {
                SetProcessDPIAware();
                Size size = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size;

                Bitmap   bitmap = new Bitmap(size.Width, size.Height);
                Graphics g      = Graphics.FromImage(bitmap);
                g.CopyFromScreen(0, 0, 0, 0, size);

                if (status.selectedSaveMode == 0)
                {
                    Clipboard.SetImage(bitmap);
                }
                else
                {
                    bitmap.Save(status.selectedPath + @"\test.png");
                }
            }
            else if (status.selectedMode == 1) // 프로그램 캡쳐
            {
                ProcessListForm processListForm = new ProcessListForm();
                processListForm.Show();
            }

            else // 영역 캡쳐
            {
                Thread.Sleep(500);
                FilterForm filterForm = new FilterForm();
                filterForm.Show();
            }
        }
예제 #2
0
        /// <summary>
        /// MainForm에서 단축키에 해당하는 입력을 받으면 캡쳐를 시작합니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_KeyDown(object sender, KeyEventArgs e)
        {
            Keys   key   = e.KeyCode;
            string stkey = key.ToString();

            // 현재 Control만 구현돼있고, Alt, Shift 추가 구현해야 함
            if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
            {
                // test
                MessageBox.Show(Keys.Control + " + " + stkey);
            }

            if (stkey == MainForm.status.selectedHotKey)
            {
                this.Visible = false;
                if (status.selectedMode == 0) // 전체화면
                {
                    SetProcessDPIAware();
                    Size size = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size;

                    Bitmap   bitmap = new Bitmap(size.Width, size.Height);
                    Graphics g      = Graphics.FromImage(bitmap);
                    g.CopyFromScreen(0, 0, 0, 0, size);

                    if (status.selectedSaveMode == 0)
                    {
                        Clipboard.SetImage(bitmap);
                    }
                    else
                    {
                        bitmap.Save(status.selectedPath + @"\test.png");
                    }
                }
                else if (status.selectedMode == 1) // 프로그램 캡쳐
                {
                    // ProcessListForm 생성하고 ProcessName값 받아서 캡쳐 구현해야 함
                }

                else // 영역 캡쳐
                {
                    Thread.Sleep(300); // 창이 내려가다가 찍히는 것을 방지하기 위해 딜레이
                    FilterForm filterForm = new FilterForm();
                    filterForm.Show();
                }
            }
        }