Maison > développement back-end > C++ > Comment puis-je prendre une capture d'écran d'une fenêtre d'application spécifique à l'aide de C# ?

Comment puis-je prendre une capture d'écran d'une fenêtre d'application spécifique à l'aide de C# ?

Mary-Kate Olsen
Libérer: 2025-01-17 12:07:10
original
467 Les gens l'ont consulté

How Can I Take a Screenshot of a Specific Application Window Using C#?

C# prend une capture d'écran de la fenêtre d'application spécifiée

Dans certains cas, il est nécessaire de prendre une capture d'écran d'une application ou d'une fenêtre spécifique plutôt que de l'intégralité de l'écran. Ceci est réalisé grâce à l'API PrintWindow Win32, qui permet d'imprimer des fenêtres dans le contexte de l'appareil.

Mise en œuvre du code

Le code C# suivant montre comment prendre une capture d'écran d'une fenêtre spécifiée :

<code class="language-csharp">// 导入所需的Win32 API
[DllImport("user32.dll")]
public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
[DllImport("user32.dll")]
public static extern bool PrintWindow(IntPtr hWnd, IntPtr hdcBlt, int nFlags);

// 定义表示RECT结构的类
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
    public int Left;
    public int Top;
    public int Right;
    public int Bottom;
}

// 获取窗口句柄和尺寸
IntPtr hwnd = ...; // 请替换为要截取的窗口句柄
RECT rc;
GetWindowRect(hwnd, out rc);

// 创建位图以存储截图
Bitmap bmp = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);

// 获取位图的图形设备上下文
Graphics gfxBmp = Graphics.FromImage(bmp);

// 创建离屏设备上下文
IntPtr hdcBitmap = gfxBmp.GetHdc();

// 将窗口打印到离屏设备上下文
PrintWindow(hwnd, hdcBitmap, 0);

// 释放离屏设备上下文
gfxBmp.ReleaseHdc(hdcBitmap);
gfxBmp.Dispose();

// 现在您拥有了表示指定窗口截图的位图</code>
Copier après la connexion

Autres consignes

  • La fonction PrintWindow intercepte la zone client de la fenêtre, pas d'autres parties comme la bordure ou le menu.
  • Si la fenêtre est partiellement visible, seule la partie visible est capturée.
  • Les captures d'écran capturées peuvent être enregistrées dans un fichier ou affichées dans une visionneuse d'images.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal