Я использую его в настольном мостовом приложении. В первый раз, когда я его использовал, он правильно настроил изображение. С этого момента каждый раз, когда он выполняется, он просто устанавливает одно и то же первое изображение, независимо от того, на какой файл я его указываю. Я даже вижу правильное изображение в настройках-> экран блокировки. Но когда я нажимаю на него, вместо этого я получаю кешированное изображение. Даже после перезагрузки отображается первое кэшированное изображение.
Настройка изображения другими способами (например, из приложения UWP) работает нормально.
РЕДАКТИРОВАТЬ
Еще одна странность заключается в том, что когда я запускаю приложение в первый раз, я получаю:
System.IO.FileNotFoundException: 'The system cannot find the file specified. (Exception from HRESULT: 0x80070002)'
в LockScreen.SetImageFileAsync. Но затем я просто запускаю его снова, и он не выдает это исключение.
Больше информации
Таргетинг и минимальная версия — Windows 1903, как и сам компьютер. В параметрах входа у меня отключено «использовать мою информацию для входа в систему для автоматического ...». У меня также отключен спящий режим (и, следовательно, быстрый запуск также отключен). Я проверил это на 2 компьютерах с одинаковыми результатами, включая FileNotFoundException.
@XavierXie-MSFT 1809 и 1903 соответственно.
Я создал настольное мостовое приложение, чтобы протестировать метод LockScreen.SetImageFileAsync(file). Это хорошо сработало на моей стороне. Он всегда будет обновлять изображение lockScreen, когда я устанавливаю для него другое изображение.
@XavierXie-MSFT Странно. Сейчас я попробовал на другом компьютере с теми же результатами. Я также видел, что под C:\ProgramData\Microsoft\Windows\SystemData\{SID}\ReadOnly создается новая папка для каждого изображения, добавленного через настройки, но для изображений, добавленных через мое приложение, они все находятся в одной папке, с исходным изображением как LockScreen___1920_1080_notdimmed.jpg и последним со всеми остальными. имена. Я имею в виду windows.winmd и system.runtime,windowsruntime. И используя StorageFile.GetFileFromPathAsync(path), чтобы получить файл. Как мои 2 компьютера дают одинаковый результат?
@XavierXie-MSFT Под How do my 2 computers give the same result? я имел в виду: поскольку у меня возникает одна и та же проблема на двух компьютерах, я не думаю, что это какая-то проблема с моим компьютером. Так как же получить другой результат? Странный.
Можете ли вы опубликовать минимальную реплику, демонстрирующую проблему?
@StefanWickMSFT Больше ничего, кроме того, что я опубликовал. В обработчике событий Click в приложении WPF у меня есть строка path, которую я передаю в StorageFile.GetFileFromPathAsync, а затем передаю результат в LockScreen.SetImageFileAsync(). Это все. И ссылки указаны в моем комментарии выше (windows и windowsruntime). Упаковано с проектом упаковки.
@StefanWickMSFT Я также отредактировал свой вопрос, включив в него еще одну странную вещь: файл не найден при первом выполнении кода. Я только что создал новое решение, и с ним произошло то же самое.
@ispiro Вам лучше указать минимальный воспроизводимый пример для дополнительной диагностики вместо однострочного кода StorageFile.GetFileFromPathAsync().
@XavierXie-MSFT Здесь: string path = "thePath"; var file = await StorageFile.GetFileFromPathAsync(path); await LockScreen.SetImageFileAsync(file);. Вот и все.
Я могу воспроизвести это. Похоже на ошибку для меня. @ Xavier-MSFT, не могли бы вы передать эту проблему в нужную команду? Кстати, это не связано с настольным мостом, оно также воспроизводится с неупакованным приложением WPF. Похоже, что API SetImageFileAsync имеет ошибку при вызове из процесса, отличного от UWP.
@StefanWickMSFT Спасибо за подтверждение. Пока они этим занимаются, возможно, они смогут взглянуть на UserProfilePersonalizationSettings.TrySetLockScreenImageAsync, который также не работает, и на исключение FileNotFoundException, которое я добавил к своему вопросу.
@XavierXie-MSFT Я вижу, что Стефан Вик ответил вам, но я не уверен, что @ было достаточно, чтобы вы получили уведомление. Вы видели его ответ? (2 комментария над этим.)
@ispiro Я сообщил соответствующей команде.
@XavierXie Есть ли способ увидеть прогресс в решении этой проблемы?
@StefanWickMSFT Есть ли способ увидеть прогресс в решении этой проблемы?
@StefanWickMSFT Есть ли какие-либо обновления по этой проблеме?





Как упоминалось в комментариях, это ошибка в Windows.
Спасибо, Стефан Вик MSFT.
Какова целевая версия вашего проекта настольного моста и версия сборки ОС?