/// <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(); } }
/// <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(); } } }