VB.NET Add Printer

198 Views Asked by At

I have this Code that adds a Network Printer:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim printerName As String = TextBox1.Text.Trim()

    If String.IsNullOrEmpty(printerName) Then
        MessageBox.Show("Provide a correct Printer Name")
        Return
    End If

    Try
        Dim network As New WshNetwork()
        network.AddWindowsPrinterConnection($"\\ws-print-se\{printerName}")

        If CheckBox1.Checked Then
            SetDefaultPrinter(printerName)
            MessageBox.Show($"The Printer '{printerName}' was installed and set to default.")
        Else
            MessageBox.Show($"The Printer '{printerName}' was installed.")
        End If
    Catch ex As Exception
        MessageBox.Show($"Error during Installation")
    End Try
End Sub
Private Sub SetDefaultPrinter(printerName As String)
    Try
        Dim query As String = $"SELECT * FROM Win32_Printer WHERE Name = '{printerName.Replace("\", "\\")}'"
        Dim searcher As New ManagementObjectSearcher(query)

        For Each printer As ManagementObject In searcher.Get()
            printer.InvokeMethod("SetDefaultPrinter", Nothing)
            MessageBox.Show($"The Printer '{printerName}' was set as default.")
            Return
        Next

        MessageBox.Show($"Error during set as default Printer, Printer wasn't found")
    Catch ex As Exception
        MessageBox.Show($"Error during set as default Printer: {ex.Message}")
    End Try
End Sub

I added a Checkbox to choose if the printer that is gonna be installed is set to default. When not checked, it just installs the printer. When checked (set as default), it installes the printer, then the message "Error during set as default Printer, Printer wasn't found" and then the message "The Printer '{printerName}' was installed and set to default" comes up. But the printer isn't set as default. Any ideas why?

0

There are 0 best solutions below