c# - C# 的 SystemParametersInfo 参数定义

标签 c# include system-calls definitions

我想从 C# 调用 SystemParametersInfo。此函数的第一个参数是大量可能值(如 SPI_GETACCESSTIMEOUT)中的一个,这些值列在文档中,但似乎没有在任何地方定义。

我可以在网上找到这些东西的实际值,然后用正确的魔数(Magic Number)组成一个枚举 - 这行得通,但不是正确的事情。我希望能够包括一些可以为我做所有这些的东西。它们必须在某处定义!

我该怎么做才能使其正常工作?


OJ 指向 SPI page如果我想将所有这些复制到我的源代码中,那就太好了。 但我希望编译器这样做。

我只能说:

[DllImport("user32", CharSet = CharSet.Auto)]
private static extern bool SystemParametersInfo(int uAction, bool uParam, int lpvParam, int fuWinIni);
SystemParametersInfo(SPI_GETACCESSTIMEOUT, 0, ref IsActive, 0);

相反,我需要添加:

public const uint SPI_GETACCESSTIMEOUT = 0x003C;

...以及所有其他内容。我正在寻找一些命令,可以从 dll 中的任何位置导入所有这些定义。

最佳答案

这正是 pinvoke.net 的全部内容:)

参见 SystemParametersInfo page有关完整说明和示例代码。请记住,据我所知,您必须使用 pinvoke 来处理此 API。

干杯!

编辑:如果不是很明显,可以在 SPI page 上找到 SPI_GETACCESSTIMEOUT 的信息。 (从 SystemParametersInfo 页面链接)。还有另一个样本 here .

关于c# - C# 的 SystemParametersInfo 参数定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423055/

相关文章:

c# - 匹配 SQL 对象(表/函数/ View )的正则表达式模式?

c++ - 在 C++ 中使用#ifndef 和#define 是否过时了?

macos - 如何从 OSX 上的用户空间写入 x86 调试寄存器?

c# - BlockingCollection<T>.TakeFromAny,用于具有不同泛型类型的集合

c# - 两个上下文菜单共享图标,但仅显示一个上下文菜单图标

c# - 再次为特定异常启用 Break

visual-c++ - 未找到 Visual C++ 包含文件

c - 在另一个头文件中包含一个头文件

Linux reboot() 系统调用 : why it calls do_exit(0) after kernel_halt()?

macos - 系统调用 OSX 创建文件 [打开]