【发布时间】:2011-12-19 02:10:07
【问题描述】:
我想在 C# 中直接在桌面上绘制(作为壁纸或全部,我不介意),但我一直找不到方法。我发现了这个:
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 void ReleaseDC(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(desktop);
}
}
它实际上绘制了一个红色矩形,但在 1 秒内,Visual Studio 给了我这个错误:
检测到 PInvokeStackImbalance
任何帮助表示赞赏, 谢谢
【问题讨论】:
-
我假设您在这里找到了该代码? stackoverflow.com/questions/1536141/…