感谢您使用微软产品。在C#中,目前通过SendKeys.Send("({PRTSC})");来截取屏幕时,的确只能拷当前FORM,而不是整个屏幕。不过,您可以通过调用系统的Dll来实现截取整个屏幕。下面提供一段示例代码供您参考,该代码的功能时截取整个屏幕:
using System.Runtime.InteropServices;
……
internal class NativeCalls
{
[DllImport("user32.dll")]
internal extern static IntPtr GetDesktopWindow(); [DllImport("user32.dll")]
internal extern static IntPtr GetDC( IntPtr windowHandle ); [DllImport("gdi32.dll")]
internal extern static IntPtr GetCurrentObject( IntPtr hdc, ushort objectType ); [DllImport("user32.dll")]
internal extern static void ReleaseDC( IntPtr hdc );
} public class DesktopImage
{ public static Image Capture()
{
IntPtr desktopWindow = NativeCalls.GetDesktopWindow(); IntPtr desktopDC = NativeCalls.GetDC( desktopWindow );
IntPtr desktopBitmap = NativeCalls.GetCurrentObject( desktopDC, 7 );

Image desktopImage = Image.FromHbitmap( desktopBitmap ); NativeCalls.ReleaseDC( desktopDC ); return desktopImage;
}
}
……
private void button1_Click(object sender, System.EventArgs e)
{
pictureBox1.Image = DesktopImage.Capture();
}
……
 — 微软全球技术中心 VB支持中心本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。