質問

C#のSystemParametersInfo APIに問題があります。スクリーンセーバーのタイムアウトを取得しても問題はありませんが、「再開画面でログオン画面を表示」の状態を取得しようとすると、チェックボックスは常に 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を使用できます。

すでに外部関数を ref uint から ref bool に書き換えようとしましたが、それは問題ではありません。

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

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

役に立ちましたか?

解決

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top