bonjour,
je bloque sur l'utilisation d'un listview et je vous appelle au secours :
je me sert d'un listview pour afficher les spools disponibles sur un serveur d'imprimante en lisant le registre de celui ci.
j'utilise une combobox qui permet soit d'afficher toutes les imprimantes disponibles soit de les trier par batiment
mon probleme : quand je choisis d'afficher toutes les imprimantes j'ai bien toutes les imprimantes batiments par batiments
mais quand je filtre pour un batiment donné, alors je n'ai pas la meme liste; il manque des imprimantes qui pourtant s'affiche bien quand je les listes toutes et la j'avoue que ....
en filtrage par batiments j'ai l'erreur suivante : "la reference d'objet n'est pas définie à une instance d'un objet"
voici le code utilisé pour lister toutes les imprimantes du serveur :
Dim Ruche As RegistryKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "Serveur").OpenSubKey("SYSTEM\CurrentControlSet\Control\Print\Printers", False)
Dim FindShare As RegistryKeyIfMe.ComboBox2.SelectedItem = "..Tous"Then
ForEach Nom AsStringIn Ruche.GetSubKeyNames
FindShare = Ruche.OpenSubKey(Nom, False)
Dim Spool AsString = FindShare.GetValue("Share Name")
Me.ListView1.Sorting = SortOrder.Ascending
Me.ListView1.Items.Add(FindShare.GetValue("Location")).SubItems.Add(Spool)Nextet voici le code pour trier les imprimantes par batiments :
Else
Dim ChoixduBatiment AsString = Me.ComboBox2.SelectedItem
Dim NomIMP AsString
ForEach NomIMP In Ruche.GetSubKeyNamesFindShare = Ruche.OpenSubKey(NomIMP,
False)
Dim Batiment AsString = FindShare.GetValue("Location")
Dim Spool AsString = FindShare.GetValue("Share Name")If InStr(Batiment.ToUpper, ChoixduBatiment.ToUpper) > 0 Then
Me.ListView1.Sorting = SortOrder.Ascending
Me.ListView1.Items.Add(Batiment).SubItems.Add(Spool)EndIfNextEndIfsi vous y comprenenz quelquechose merci de m'aider svp.
_____________
(débutant inside)