Problème avec Shell32.FolderItem vb.net 2008

Résolu
hyunikel Messages postés 16 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 5 novembre 2009 - 4 nov. 2009 à 19:48
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 5 nov. 2009 à 11:57
Bonjour,

Je viens de finir une application windows sous vb 2008 qui marche sans aucun problème sous windows xp.
Sauf que lorsque j'ai changé de session windows pour la réexécuter dans celle ci, ça m'a généré une exception NullReferenceException. voici une portion du code :

Dim oShell As Shell32.Shell
        Dim oFolder As Shell32.Folder
        oShell = New Shell32.Shell
        oFolder = oShell.NameSpace(Environment.GetFolderPath(Environment.SpecialFolder.Desktop))
        Console.WriteLine(oFolder.Title) 'ça affiche "Bureau" dans la console
        If (Not oFolder Is Nothing) Then 's'il existe des éléments sur le bureau
            Dim oFolderItem As Shell32.FolderItem
            oFolderItem = oFolder.ParseName("Fraps.lnk") 'on cherche à récupérer le raccourci "Fraps.lnk"
            Console.WriteLine(oFolderItem.Path.ToString) 'c'est là où il me génére l'exception NullReferenceException et bien sur il ne m'affiche pas le chemin du raccourci
            Console.WriteLine(oFolderItem.Path.Length)
            If (Not oFolderItem Is Nothing) Then
...


c'est comme si le Shell32.FolderItem ne fonctionne plus lorsque je changé de session windows. je suis meme allé exécuter l'application
sur un autre pc avec windows xp. et ça génére la meme exception toujours à cette ligne, alors qu'en revenant à ma session windows, tout refonctionne parfaitement.
Je me sens perdu, s'il vous plait aidez moi.
Je vous remercie infiniment.
A voir également:

3 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
4 nov. 2009 à 20:35
  If (Not oFolder Is Nothing) Then 's'il existe des éléments sur le bureau
     Dim oFolderItem As Shell32.FolderItem
     oFolderItem = oFolder.ParseName("Fraps.lnk") 
     If oFolderItem IsNot Nothing Then
         Console.WriteLine(oFolderItem.Path.ToString)               
         Console.WriteLine(oFolderItem.Path.Length)
         If (Not oFolderItem Is Nothing) Then
         [...]  


A mon humble avis il faut tester si le oFolderItem n'est pas null, car toutes les sessions n'on pas forcément des raccourcis nommés 'Fraps.lnk' sur leur bureau...

++ Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
3
hyunikel Messages postés 16 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 5 novembre 2009
5 nov. 2009 à 10:59
Un grand merci pour vous Mayzz.

Vous m'avez fait me rendre compte que j'ai oublié d'appliquer ce test. Et il s'est avéré que suivre ton conseil était la solution.

Encore une fois bravo et merci
Hyunikel
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
5 nov. 2009 à 11:57
Pas de quoi ;O)

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Rejoignez-nous