我想从C#中调用SystemParametersInfo。这个函数的第一个参数是SPI_GETACCESSTIMEOUT这类可能值的大集合之一,它们在文档中列出,但似乎没有在任何地方定义。SystemParametersInfo参数定义C#
我可以在网络上找到这些东西的实际值,并在其中使用正确的幻数进行枚举 - 这是有效的,但这不是正确的。我想能够包含一些为我做的一切。他们必须在某个地方定义!
我该怎么做才能正常工作?
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中的任何位置导入所有这些定义。
所以你基本上要求的是SystemParametersInfo的管理版本。简短的回答是,没有一个(在发布时)。你必须像已经演示过的那样使用p/invoke。就是那样子! – 2010-03-21 22:24:12