Я не уверен, как это сделать из консольного приложения, поскольку оно очень ограничено, но вы можете значительно проще создать программу захвата экрана из Windows Forms. Курс, который я взял у Хью Коллингборна, который научит вас, как это сделать. Это не маленькая программа для ввода в этом поле.
Программа, которой он обучает, имеет основную форму, после чего появится всплывающая прозрачная форма меньшего размера, которую вы будете перемещать по области, которую хотите захватить. Для захвата вы должны нажать кнопку, которая захватит прозрачную форму с этим кодом:
formRect = new Rectangle(this.Left, this.Top, this.Left + this.Width, this.Top + this.Height);
this.Hide();
mainForm.GrabRect(formRect);
Возвращаясь к основной форме, программа поместит изображение в поле для просмотра.
public void GrabRect(Rectangle rect)
{
int rectWidth = rect.Width - rect.Left;
int rectHeight = rect.Height - rect.Top;
Bitmap bm = new Bitmap(rectWidth, rectHeight);
Graphics g = Graphics.FromImage(bm);
g.CopyFromScreen(rect.Left, rect.Top, 0, 0, new Size(rectWidth, rectHeight));
this.pb_screengrab.Image = bm;
Clipboard.SetImage(bm);
g.Dispose();
}
Вот ссылки на его курс https://bitwisecourses.com/p/program-a-screen-capture-tool-in-c-sharp, и его курс, проданный через udemy https://www.udemy.com/course/program-a-screen-capture-tool-in-c/learn/lecture/15760316#content
bitwisecourses.com, является его прямым веб-сайтом, я полагаю. В противном случае Udemy предложит хорошие скидки, например, от 10 до 13 долларов за свои занятия. После того, как вы купили связку и ничего не делаете в течение нескольких месяцев, они попытаются взимать с вас полную цену, но вам нужно только отправить их по электронной почте, и они снова начнут сбрасывать со счетов.
Я положил все, что сделалздесь: https://github.com/johnbnstx/HuwBurn_ScreenGrab
Надеюсь, это поможет.