0

C#のSystemParametersInfoAPIに問題があります。スクリーンセーバーのタイムアウトを取得するのに問題はありませんが、[ログオン画面の表示を再開する]チェックボックスの状態を取得しようとすると、常にfalseが表示されます。

[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
private static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref uint pvParam, uint fWinIni);

public void Test() {
    uint result = 0;
    SystemParametersInfo(76, 0, ref result, 0);
}

結果は常に0になりますが、レジストリ値が1から0に変化するのがわかります(ただし、レジストリを介して設定すると、ログオフ後にのみ新しい設定が処理されるため、レジストリ値を使用できません)。

値14を使用して、スクリーンセーバーのタイムアウト値を取得できます。

私はすでに外部関数をrefuintからrefboolに書き直そうとしましたが、それは問題ではありません。

私はWindows7x64を使用しています。MSDNは、パラメーター情報のソースです:http:
//msdn.microsoft.com/en-us/library/ms724947 (VS.85).asp

誰か手がかりがありますか?

4

1 に答える 1

2

SPI_GETSCREENSAVESECUREは、76ではなく0x76です。

于 2009-11-29T14:33:41.960 に答える