2013-09-26 23 views
0

我想在我的WinRT应用程序的锁定屏幕上设置背景图像。但是,在执行该代码时,我得到消息的UnauthorizedAccessException:LockScreen.SetImageFileAsync(...)导致UnauthorizedAccessException

“访问被拒绝(异常来自HRESULT:0X80070005(E_ACCESSDENIED))”

代码从MSDN拍摄,看起来像OK。

private async void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
    { 
     var imagePicker = new FileOpenPicker 
     { 
      ViewMode = PickerViewMode.Thumbnail, 
      SuggestedStartLocation = PickerLocationId.PicturesLibrary, 
      FileTypeFilter = { ".jpg", ".jpeg", ".png", ".bmp" }, 
     }; 

     var imageFile = await imagePicker.PickSingleFileAsync(); 

     if (imageFile != null) 
     { 
      await LockScreen.SetImageFileAsync(imageFile); 
     } 
    } 

下面描述的例外是在这行代码抛出:

await LockScreen.SetImageFileAsync(imageFile); 

顺便说一句,我试图安装它可以改变你的锁屏背景上一些应用程序,但所有的他们显示错误或只是崩溃。也许我的操作系统版本有问题?

有谁知道如何解决这个问题?请帮忙!

回答

0

我面对完全一样的问题。问题是我的操作系统没有激活。检查你电脑属性上的这个东西。希望能帮助到你。

+0

是的,这个问题是完全因为Windows没有激活。 ,你的答案是正确的。 – winnie1pooh

1

您需要访问图片库。 设置它打开你的Package.appxmanifest,转到功能和检查图片库。

+2

对不起,我没有提到异常现在我试图设置背景图像...图片库已经在清单中检查...我刚刚编辑了这个问题。 – winnie1pooh

0

我想它的某种特权问题可能是管理员。

尝试变通通过应用此代码

private async void Button_Click(object sender, RoutedEventArgs e) 
    { 
     var client = new HttpClient(); 
     var bytes = await client.GetByteArrayAsync(new Uri("http://transfer-talk.com/wp-content/uploads/Kaka-Real-Madrid.jpg")); 
     StorageFile sf = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("test.jpg", CreationCollisionOption.ReplaceExisting); 
     await FileIO.WriteBytesAsync(sf, bytes); 
     //var imageFile = await imagePicker.PickSingleFileAsync(); 

     //if (imageFile != null) 
     { 
      await LockScreen.SetImageFileAsync(sf); 
     } 
    } 

它会下载图像和设置。在我的情况下,不要给你的代码或我的例外。

下载此示例并尝试运行,看看是否存在错误lock screen sample

也尝试设置流而使用存储文件。

await LockScreen.SetImageStreamAsync(await sf.OpenReadAsync()); 

尝试,让我知道:)

+0

所有的建议都不起作用......一切都是一样的。无论如何,谢谢你的帮助! – winnie1pooh

+0

我猜想有一些权限不匹配。不是管理员accnt或尝试运行vs通过右键单击并以管理员身份运行:(由于你的问题我设置我的屏幕图像到我给的网址:D – Anobik

相关问题