应该是direct的问题,有个播放器要关了硬件加速才能截图
用Graphics类的CopyFromScreen方法可以,前提是你的控件不能被遮盖。 [DllImport("user32.dll")] //申明API函数 public static extern int GetWindowRect( IntPtr hWnd, out Rectangle lprect ); private void button1_Click(object sender, EventArgs e) { IntPtr Hwnd = (IntPtr)1574326; //控件句柄,这里为了方便直接赋值的,值得来源不在此例范围 Rectangle rect = new Rectangle();//定义一个矩形 GetWindowRect(Hwnd, out rect); //取控件的矩形 Image Img = new Bitmap(rect.Width - rect.X, rect.Height - rect.Y); Graphics g = Graphics.FromImage(Img); g.CopyFromScreen(rect.X, rect.Y, 0, 0, Screen.FromHandle(Hwnd).Bounds.Size); pictureBox1.Image = Img }
是directui绘图的,直接画在屏幕上而不是在窗口里,用了视频加速。
句柄不对吧!我做过的,没问题的
110,499
社区成员
642,566
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧