是否有可从 USER32.DLL 导入所有内容的 C# 即用型 class?

Is there a C# ready-to-use class that imports everything from USER32.DLL?

我厌倦了查找方法签名。我宁愿只输入类似 User32.SendMessage... 的内容。有这样的吗?

基本上有一个静态 class 和一堆定义,如 :

[DllImport("user32.dll")]
public static extern bool SetParent(int hWndChild, int hWndNewParent);

没有内置的 class 或静态库可以做到这一点。但是,您可以尝试 google 搜索一些免费库,甚至可以编写自己的实现。

事实是,user32.dll 是 win32 api 的一部分,它最初是为 C++ 应用程序设计的。当 Microsoft 推出 .NET(不久之后推出 C#)时,他们没有提供本机支持 - 为了 运行 .NET 应用程序,您需要 .NET dll 二进制文件。

因此,在 Microsoft 决定纠正此问题之前,您将不得不坚持使用一堆定义。

不要这样做。

user32.dll 在 Windows 的不同版本中不包含相同的功能。如果您只是一揽子导入所有内容,您很可能会确保您的程序只能 运行 在您当前使用的 Windows 的特定版本上。

每次导入本机函数时,您都应该检查它来自哪个版本 - 并确定它是否是您可以接受的依赖项。