3

IActiveDesktop を使用して何か不足していますか?

症状: システム (Win7/Win8) の再起動後、壁紙の変更中にフェード効果が消えます。

それを復元するには、手動で「個人用設定 -> デスクトップの背景」に移動し、「画像の場所」を「マイ ピクチャ」(?) から「Windows デスクトップの背景」に戻してから戻す(!) 必要があります。このアクションの後、フェード効果は次のシステム再起動まで正常に機能します。

何が元に戻るのか、それを止める方法がわかりません。プログラムで「Windows デスクトップの背景」オプションを設定する方法は? バックグラウンドで動作するシステムは何ですか?

コード自体は非常に標準的で、MSDN/CodeProject から取得されます。

4

1 に答える 1

1

ActiveDesktop を有効にするようにウィンドウに指示する必要があります。ActiveDesktopで壁紙を設定する直前に毎回伝えています。

public static void EnableActiveDesktop()
{
    IntPtr result = IntPtr.Zero;
    WinAPI.SendMessageTimeout(WinAPI.FindWindow("Progman", null), 0x52c, IntPtr.Zero, IntPtr.Zero, 0, 500, out result);
}

これをコンテキストで確認できます: https://pulse.codeplex.com/SourceControl/changeset/view/72677#1589017

于 2013-05-03T03:35:54.760 に答える