一尘不染

如何直接在Windows桌面C#上绘制?

c#

对于其他语言,也有人问过这个问题,即使对于其他语言,我也发现他们的答案缺乏如何准确地进行整洁(没有弄乱屏幕重绘等)。

是否可以从C#绘制Windows桌面?如果可能,我正在寻找一个例子。


阅读 417

收藏
2020-05-19

共1个答案

一尘不染

请尝试以下操作:

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Runtime.InteropServices;

class Program {

    [DllImport("User32.dll")]
    static extern IntPtr GetDC(IntPtr hwnd);

    [DllImport("User32.dll")]
    static extern int ReleaseDC(IntPtr hwnd, IntPtr dc);

    static void Main(string[] args) {
        IntPtr desktop = GetDC(IntPtr.Zero);
        using (Graphics g = Graphics.FromHdc(desktop)) {
            g.FillRectangle(Brushes.Red, 0, 0, 100, 100);
        }
        ReleaseDC(IntPtr.Zero, desktop);
    }
}
2020-05-19