[VB.NET] checken of USB printer aan/uit staat...

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Graag zou ik in mijn VB.NET (Windows Form) programma willen weten of mijn USB printer aan of uit staat.

Ik kom allerlei methodes en voorbeelden tegen om allerlei informatie over de printer in te zien (soorten papier, kleur of niet, aan het printen of idle, etc... etc...) maar ik kan nergens iets vinden over de power-status.

Met onderstaande procedure kan ik altijd "online" terug. Dus ook als de printer uit staat. (er wordt denk ik alleen gecontroleerd of de printer überhaupt geïnstalleerd is op het systeem)

code:
1
2
3
4
5
6
7
8
9
   Private Function CheckPrinter(ByVal printerName As String) As Boolean
        Try
            Dim printDocument As PrintDocument = New PrintDocument
            printDocument.PrinterSettings.PrinterName = printerName
            Return printDocument.PrinterSettings.IsValid
        Catch ex As System.Exception
            Return False
        End Try
    End Function


Ik dacht een alternatieve methode te hebben gevonden, maar ook deze geeft niet de "power status" weer...

code:
1
2
3
4
5
6
        Dim printerName = "Canon TS3100 series"
        Dim query = String.Format("SELECT * from Win32_Printer WHERE Name LIKE '% {0}'", printerName)
        Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher(query)
        Dim goed As Boolean = searcher.Scope.IsConnected

        MsgBox(goed)


Hoe kom ik er (in software) achter of de printer aan of uit staat? O-)

Als het écht niet lukt schakel ik de Wifi van de printer in en ping ik op IP-adres, maar netjes vind ik het niet :P

Alvast bedankt voor 't meedenken _/-\o_

Alle reacties


Acties:
  • +3 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 01-10 07:55

Atmoz

Techno!!

Topicstarter
Aahhhhh YES!! :D Opgelost :9

Ik zocht teveel in de "printers-hoek"...

Met onderstaande functie kun je gewoon op alle USB apparaten zoeken...
Degene die aangesloten zijn én aan staan geven "true" terug _/-\o_

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Function DetectDevice(DeviceName As String) As Boolean
        Try
            ' See if the desired device shows up in the device manager.'
            Dim info As Management.ManagementObject
            Dim search As System.Management.ManagementObjectSearcher
            Dim Name As String
            search = New System.Management.ManagementObjectSearcher("SELECT * From Win32_PnPEntity")
            For Each info In search.Get()
                ' Go through each device detected.'
                Name = CType(info("Caption"), String) ' Get the name of the device.'
                If InStr(Name, DeviceName, CompareMethod.Text) > 0 Then
                    Return True
                End If
            Next
        Catch ex As Exception
        End Try
        'We did not find the device we were looking for'
        Return False
    End Function