5

デスクトップの壁紙を変更する方法を理解しました(インターネット上には数十の例があります)。

まだ私にはわからないことが1つあります。壁紙が変更されたことを検出するにはどうすればよいですか?(ディスプレイコントロールパネルまたはそれを変更する別のプログラムを介して言います。)

4

2 に答える 2

8

WM_SETTINGCHANGE、SystemEvents.UserPreferenceChanged のメッセージ ハンドラーを .NET に追加します。壁紙がまだ同じかどうかを確認します。

于 2010-01-06T17:19:49.210 に答える
5

これは、壁紙を取得するためのC#の例です。追加する必要があるのは、最後の壁紙を保存し、それが異なるかどうかを確認するための追加のコードだけです。

RegistryKey wallpaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop",false);
string wallpapername = wallpaper.GetValue("wallpaper").ToString();          
wallpaper.Close();

.net以外の言語で何かを書いている場合は、Win32 APIRegNotifyChangeKeyValue関数を使用して、この値が変更されているかどうかを確認できます。

HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
于 2010-01-06T16:59:01.990 に答える