使用者工具

網站工具


programming:c_sharp

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
programming:c_sharp [2011/03/16 00:36]
wenpei
programming:c_sharp [2011/04/09 00:02] (目前版本)
wenpei 畫面截圖
行 1: 行 1:
 +====== 在 C# 中抓取指定視窗的畫面截圖 ======
 +Ref: http://​dan.zzhc.org/​post/​3617137304/​capture-window-with-c-sharp
 +
 +<​code>​
 +/* 引入 Win32 API 中的 User32.DLL
 + * 需要加上 using System.Runtime.InteropServices;​
 + */
 +[DllImport("​user32.dll"​)]
 +public static extern Boolean GetWindowRect(IntPtr hWnd, ref Rectangle bounds);
 +
 +public void CaptureWindow () {
 +  /* 取得目標視窗的 Handle
 +   * 需要加上 using System.Diagnostics;​
 +   */
 +  Process[] process = Process.GetProcessesByName("​notepad"​);​
 +
 +  /* 取得該視窗的大小與位置 */
 +  Rectangle bounds;
 +  GetWindowRect(process[0].MainWindowHandle,​ ref bounds);
 +
 +  /* 抓取截圖 */
 +  Bitmap screenshot = new Bitmap(bounds.Width,​ bounds.Height,​ PixelFormat.Format32bppArgb);​
 +  Graphics gfx = Graphics.FromImage(screenshot);​
 +  gfx.CopyFromScreen(bounds.X,​ bounds.Y, 0, 0, bounds.Size,​ CopyPixelOperation.SourceCopy);​
 +
 +  /* 利用 PictureBox 顯示出來 */
 +  imageView.Image = (Image) screenshot;
 +  imageView.Update();​
 +}
 +
 +</​code>​
 +
 ====== Techotopia: C# Essentials ====== ====== Techotopia: C# Essentials ======
 http://​www.techotopia.com/​index.php/​C_Sharp_Essentials http://​www.techotopia.com/​index.php/​C_Sharp_Essentials
programming/c_sharp.1300206986.txt.gz · 上一次變更: 2011/03/16 00:36 由 wenpei