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
誰か手がかりがありますか?