none
C# 截图功能疑问 RRS feed

  • 问题

  • 我想做个桌面截图程序,一般情况下没什么问题.但是视频播放窗口就是截不下来,视频部分是黑色的.各位大哥有什么好办法吗?C#能做到截取视频播放窗口的截图吗?
    2010年8月13日 3:22

答案

  • 那是抓自己的进程内的窗口,直接从视频文件提取数据画到内存DC上就可以。要抓其他程序的图没这么简单。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年8月16日 14:18
    版主

全部回复

  • 你用prtscn键也截不到吧

    关掉directx的硬件加速


    http://feiyun0112.cnblogs.com/
    2010年8月13日 6:56
    版主
  • 利用普通的 PrintWindow() P/Invoke 并不能获取 DirectX 技术绘制的屏幕。它必须用另外的方法而不是 PrintWindow API。请查询 DirectX SDK 以便获取相关信息。目前,我也不太清楚怎么捕捉譬如影片的截图。
    Mark Zhou
    2010年8月13日 9:57
  • DirectX的也未必截得下来OpenGL的。要保险的话得写虚拟视频驱动,这个C#做不了。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年8月15日 17:55
    版主
  • 真做不了吗?那一些播放软件内置的截图功能是怎么办到的呢?  关掉硬件加速一般来讲是可以成功截取视频窗口,但是这样会影响视频播放性能,实在不可取啊
    2010年8月16日 4:42
  • 那是抓自己的进程内的窗口,直接从视频文件提取数据画到内存DC上就可以。要抓其他程序的图没这么简单。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年8月16日 14:18
    版主