2011-11-26 80 views
6

我正在尋找一個SDK,插件或代碼,將videorecord特定的窗口(hwnd)。 如果可能的話用C#或Java。有誰知道這是否存在?我一直在使用Google,但沒有遇到任何問題。屏幕記錄單個窗口

+5

[屏幕的視頻記錄採用.NET技術]的可能重複(http://stackoverflow.com/questions/397754/record-video-of-screen-using-net-technologies) – Nasreddine

+0

問題出現類似;但不是重複的。有問題的鏈接是指一般的屏幕截圖;這個問題具體指的是捕獲屏幕的一部分給定一個特定窗口的HWND。 – IDWMaster

+0

不,這不是重複的。原因如下: 此問題詢問如何記錄單個窗口,無論窗口是否顯示在桌面上或最小化(他提到HWND)。因此,屏幕截圖方法在這裏不會是答案。答案應該與如何捕獲給定窗口句柄的窗口有關。 – thenonhacker

回答

4

安裝Microsoft Expression Encoder 4 with Service Pack 2 (SP2)

下面是一個示例程序來使用它。一個更完整的樣本隨SDK提供,包含在下載中。

using System; 
using System.Drawing; 
using Microsoft.Expression.Encoder.ScreenCapture; 

// Added references to: 
// Microsoft.Expression.Encoder 
// Microsoft.Expression.Encoder.Types 
// Microsoft.Expression.Encoder.Utilities 
// WindowsBase 
// System.Drawing (for Rectangle) 

namespace scrcap 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ScreenCaptureJob job = new ScreenCaptureJob(); 

      // You can capture a window by setting its coordinates here 
      job.CaptureRectangle = new Rectangle(100, 100, 200, 200); 

      // Include the mouse pointer in the captured video 
      job.CaptureMouseCursor = true; 

      // Output file; you can transcode the xesc file to something else later. 
      // Note that this silently does nothing if the file already exists. 
      job.OutputScreenCaptureFileName = @"C:\Users\arx\scrcap\capture.xesc"; 

      // Do some capture 
      job.Start(); 
      // Wait for a keypress 
      Console.ReadKey(); 
      // And stop 
      job.Stop(); 
     } 
    } 
} 
+0

@Jochen:是否爲你工作? – arx