Изменить фоновое изображение экрана блокировки 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);
Другие вопросы по тегам