我想只捕获桌面屏幕的某些部分。例如,我已经打开了4,5种不同的窗口浏览器,浏览器,一些MS office文件和其他东西。我想截取只包含其中一些(窗口)的截图。不是所有的窗户。
string appPath = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory) + @"\screenshots\";
string imgName = name + DateTime.Now.Ticks + @".JPEG";
Bitmap memoryImage = null;
Graphics memoryGraphics = null;
int width = Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenWidth);
int height = Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenHeight);
System.Drawing.Size s = new System.Drawing.Size(width, height);
string str = "";
try
{
str = appPath + imgName;
}
catch (Exception er)
{
MessageBox.Show(er.Message.ToString());
}
using (memoryImage = new Bitmap(width, height))
{
using (memoryGraphics = Graphics.FromImage(memoryImage))
{
memoryGraphics.CopyFromScreen(0, 0, 0, 0, s);
memoryImage.Save(str);
}
}
memoryImage.Dispose();
memoryGraphics.Dispose();
我使用上面的代码,这简单地给了我桌面的截图。