デスクトップの壁紙を変更する方法を理解しました(インターネット上には数十の例があります)。
まだ私にはわからないことが1つあります。壁紙が変更されたことを検出するにはどうすればよいですか?(ディスプレイコントロールパネルまたはそれを変更する別のプログラムを介して言います。)
デスクトップの壁紙を変更する方法を理解しました(インターネット上には数十の例があります)。
まだ私にはわからないことが1つあります。壁紙が変更されたことを検出するにはどうすればよいですか?(ディスプレイコントロールパネルまたはそれを変更する別のプログラムを介して言います。)
WM_SETTINGCHANGE、SystemEvents.UserPreferenceChanged のメッセージ ハンドラーを .NET に追加します。壁紙がまだ同じかどうかを確認します。
これは、壁紙を取得するための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