Изменить фоновое изображение экрана блокировки Windows в C#
Есть ли способ изменить изображение экрана блокировки, как обои в C#, используя pinvoke.
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern Int32 SystemParametersInfo(UInt32 action,
UInt32 uParam, string vParam, UInt32 winIni);
private static readonly UInt32 SPI_SETDESKWALLPAPER = 20;
private static UInt32 SPIF_UPDATEINIFILE = 0x1;
private static uint MAX_PATH = 260;
// then I call
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, file, SPIF_UPDATEINIFILE);
Я хотел бы сделать то же самое для экрана блокировки (как это делает приложение Bing Desktop)
1 ответ
Решение
Учитывая ваш тег Windows 8, да, вы можете:
LockScreen.SetImageFileAsync()
, как показано на примере персонализации экрана блокировки Windows 8 в C# (код обработки ошибок опущен, проверьте пример):
StorageFile imageFile = await imagePicker.PickSingleFileAsync();
// Application now has access to the picked file, setting image to lockscreen.
// This will fail if the file is an invalid format.
await LockScreen.SetImageFileAsync(imageFile);