Ich möchte einen Aufruf von SystemParametersInfo von C#. Das erste Argument für diese Funktion ist eine aus einer großen Sammlung möglicher Werte wie SPI_GETACCESSTIMEOUT, die in der Dokumentation aufgeführt sind, aber nirgendwo definiert zu sein scheinen.SystemParametersInfo Parameterdefinitionen für C#
Ich kann die tatsächlichen Werte dieser Dinge im Internet finden und ein enum mit den richtigen magischen Zahlen darin finden - das funktioniert, aber es ist nicht das Richtige. Ich möchte in der Lage sein, etwas einzubeziehen, das alles für mich tut. Sie müssen irgendwo definiert werden!
Was kann ich tun, damit das funktioniert?
OJ verweist auf die SPI page das ist toll, wenn ich das alles in meinem Quellcode kopieren möchten. Aber ich möchte der Compiler das tun.
Ich sollte nur in der Lage sein, zu sagen:
[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);
Stattdessen muss ich hinzufügen:
davonpublic const uint SPI_GETACCESSTIMEOUT = 0x003C;
... und der ganze Rest auch. Ich suche nach einem Befehl, der all diese Definitionen von wo auch immer sie in der DLL leben importieren wird.
Was Sie im Wesentlichen fordern, ist eine verwaltete Version von SystemParametersInfo. Die kurze Antwort ist, es gibt keine (zum Zeitpunkt der Buchung). Sie müssen p/invoke wie bereits gezeigt verwenden. So ist es halt! –