2013-09-26 3 views
0

J'essaie de définir l'image de fond sur l'écran de verrouillage dans mon application WinRT. Mais lorsque ce code est en cours d'exécution, je reçois un UnauthorizedAccessException avec le message:LockScreen.SetImageFileAsync (...) provoque UnauthorizedAccessException

"L'accès est refusé (Exception de HRESULT: 0x80070005 (E_ACCESSDENIED))"

Le code a été prise à partir de MSDN et ressemble 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); 
     } 
    } 

L'exception décrite ci-dessous est jeté dans cette ligne de code:

await LockScreen.SetImageFileAsync(imageFile); 

D'ailleurs, je l'ai essayé d'installer certaines applications qui peuvent changer l'arrière-plan sur l'écran de verrouillage, mais tous ils montrent une erreur ou juste un accident. Peut-être que quelque chose ne va pas avec ma version du système d'exploitation?

Est-ce que quelqu'un sait comment résoudre ce problème? S'il vous plaît aider!

Répondre

0

je faisais face avec exactement le même problème. Le problème était que mon système d'exploitation n'était pas activé. Vérifiez cette chose sur les propriétés de votre ordinateur. J'espère que cela aide.

+0

Oui, ce problème était exactement à cause de Windows n'a pas été activé. , ta réponse est la bonne. – winnie1pooh

1

Vous devez accéder à la bibliothèque d'images. Définissez-le en ouvrant votre Package.appxmanifest, goto Capabilities et vérifiez Pictures Library.

+2

Je suis désolé, je n'ai pas mentionné que l'exception est levée au moment où j'essaie de définir l'image d'arrière-plan ... La bibliothèque d'images a déjà été enregistrée dans le manifeste ... Je viens d'éditer la question. – winnie1pooh

0

Je suppose que c'est une sorte de problème de privilège peut être admin.

Essayez un travail autour en appliquant ce code

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); 
     } 
    } 

il téléchargera une image et définir. Ne pas donner une exception dans mon cas ni votre code ni le mien.

télécharger cet exemple et essayez d'exécuter et voir si l'erreur existe lock screen sample

essayer également régler le flux plutôt en utilisant le fichier de stockage.

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

essayer et laissez-moi savoir :)

+0

toutes vos suggestions ne fonctionne pas ... tout est pareil. Merci, de toute façon, pour de l'aide! – winnie1pooh

+0

il y a une sorte de permission mis match je suppose. Pas un admin accnt ou essayez d'exécuter vs par rightclicking et exécutez en tant qu'administrateur :(à la suite de votre question j'ai mis mon image à l'url que j'ai donné: D – Anobik

Questions connexes