C#的SystemParametersInfo参数定义

时间:2010-03-11 06:37:52

标签: c# include system-calls definitions

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

我可以在网上找到这些东西的实际价值,并在其中用正确的魔术数字组成一个枚举 - 这是有效的,但这不是正确的事情。我希望能够包含一些可以帮助我的东西。它们必须在某处定义!

如何才能使其正常运作?


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中的任何地方导入所有这些定义。

1 个答案:

答案 0 :(得分:2)

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

有关完整说明和示例代码,请参阅SystemParametersInfo page。请记住,就我所知,你必须使用pinvoke来处理这个API。

干杯!

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