У меня тоже была эта проблема. Оказалось, что я случайно удалил строковый ресурс «app_name» из файла strings.xml
, что приводило к тихой ошибке. Как только я добавил его обратно, класс R был сгенерирован успешно, и все снова заработало.
ScreenCapture sc = new ScreenCapture();
// capture entire screen, and save it to a file
Image img = sc.CaptureScreen();
// display image in a Picture control named imageDisplay
this.imageDisplay.Image = img;
// capture this window, and save it
sc.CaptureWindowToFile(this.Handle,"C:\\temp2.gif",ImageFormat.Gif);
http://www.developerfusion.com/code/4630/capture-a-screen-shot/
Rectangle bounds = Screen.GetBounds(Point.Empty);
using(Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
{
using(Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
}
bitmap.Save("test.jpg", ImageFormat.Jpeg);
}
для захвата текущего окна используйте
Rectangle bounds = this.Bounds;
using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
{
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(new Point(bounds.Left,bounds.Top), Point.Empty, bounds.Size);
}
bitmap.Save("C://test.jpg", ImageFormat.Jpeg);
}
Я предполагаю, что вы используете Graphics.CopyFromScreen
, чтобы получить снимок экрана.
Вы можете использовать P / Invoke для GetForegroundWindow ( и затем получите его положение и размер ), чтобы определить, из какой области нужно копировать.
Вы можете использовать код из этого вопроса: Как могу ли я сохранить снимок экрана непосредственно в файл в Windows?
Просто замените WIN32_API.GetDesktopWindow ()
свойством Handle окна, которое вы хотите захватить.