And*_*rew 6 c# system-calls include definitions
我想从C#调用SystemParametersInfo.此函数的第一个参数是SPI_GETACCESSTIMEOUT之类的大量可能值之一,它们列在文档中,但似乎没有在任何地方定义.
我可以在网上找到这些东西的实际价值,并在其中用正确的魔术数字组成一个枚举 - 这是有效的,但这不是正确的事情.我希望能够包含一些可以帮助我的东西.他们必须在某个地方定义!
我该怎么做才能使这项工作正常进行?
OJ指向SPI页面,如果我想将所有内容复制到我的源代码中,那就很棒了.但我希望编译器能够做到这一点.
我应该只能说:
[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);
Run Code Online (Sandbox Code Playgroud)
相反,我需要添加:
public const uint SPI_GETACCESSTIMEOUT = 0x003C;
Run Code Online (Sandbox Code Playgroud)
......以及其他所有内容.我正在寻找一些命令,它将从dll中的任何地方导入所有这些定义.
这正是 pinvoke.net 的全部意义所在:)
有关完整说明和示例代码,请参阅SystemParametersInfo 页面。请记住,据我所知,您必须使用 pinvoke 来处理此 API。
干杯!
编辑:如果不是很明显,可以在SPI 页面(从 SystemParametersInfo 页面链接)上找到 SPI_GETACCESSTIMEOUT 的信息。这里还有另一个样本。