Bonjour, je m'appelle Jérémy, je suis nouveau sur le forum. Mon niveau est grand débutant, mais je commence à comprendre certaines choses. En m’apprêtant à créer une petite application (c'est mon premier programme) en Visual Basic, je souhaiterai récupérer la valeur de la clé "PrinterOnLine" DWORD qui aurait pour valeur 0x00000000 ou 0x00000001, (c'est l'état de mon imprimante allumée ou éteinte) et si possible l'afficher dans un labelbox ?
ou si vous connaissez un moyen de récupérer l'état de mon imprimante sans passer par le registre ? et en notifiant bourrage papier etc


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
        Dim rk As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentConfig
        Dim rksub As Microsoft.Win32.RegistryKey = rk.OpenSubKey("\System\CurrentControlSet\Control\Print\Printers\EPSON SX230 Series", True)
        Dim registryValue As String = CType(rksub.GetValue("PrinterOnLine", Microsoft.Win32.RegistryValueKind.DWord), String)
 
 
        Dim regIMP = registryValue
 
        If regIMP = "1" Then
            REM Dim d1 As New StringDigitSubstitute = C(regIMP.GetValue("PrinterOnLine"))
            LabelE2.Text = "En ligne" & regIMP
            Dim pdem() As Process
            Dim proc As New System.Diagnostics.Process()
            pdem = Process.GetProcessesByName(SCAexe)
            If pdem.Count < 1 Then
                proc.StartInfo.FileName = (ChCL)
                proc.Start()
                proc.Close()
            Else
                MsgBox(Launcher.ChCL & "Application de scan Introuvable", MsgBoxStyle.OkOnly, )
            End If
        Else
            LabelE2.Text = "Hors ligne"
Le problème c'est que malgré le bricolage dans tout les sens de ce code, je n'arrive toujours pas à un résultat, celui ci me donne une exception non gérée. (System.NullReferenceException, La référence d'objet n'est pas définie à une instance d'un objet.)
Si quelqu'un pouvait m'aider ? Svp
Merci à vous