我想从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中的任何地方导入所有这些定义。
答案 0 :(得分:2)
这正是pinvoke.net的全部内容:)
有关完整说明和示例代码,请参阅SystemParametersInfo page。请记住,就我所知,你必须使用pinvoke来处理这个API。
干杯!
编辑:如果不是很明显,可以在SPI page(从SystemParametersInfo页面链接)上找到SPI_GETACCESSTIMEOUT的信息。还有另一个示例here。