0

我想将所有打印机安装或连接到dropdownlist.

我已经为此完成了以下代码。

Public Function FillddlPrinters() As Boolean
        Dim printersettings As New System.Drawing.Printing.PrinterSettings
        Dim Cnt As Integer = 0

        Me.ddlPrinter.Items.Clear()

        For i = 0 To Drawing.Printing.PrinterSettings.InstalledPrinters.Count - 1

            If Drawing.Printing.PrinterSettings.InstalledPrinters(i).ToString.ToUpper.Trim.Contains("XPS") Or _
                  Drawing.Printing.PrinterSettings.InstalledPrinters(i).ToString.ToUpper.Trim.Contains("FAX") Or _
                  Drawing.Printing.PrinterSettings.InstalledPrinters(i).ToString.ToUpper.Trim.Contains("PDF") Then

                Continue For

            End If

            Me.ddlPrinter.Items.Insert(Cnt, Drawing.Printing.PrinterSettings.InstalledPrinters(i))
            Cnt += 1
        Next

        Me.ddlPrinter.Items.Insert(0, "Select Printer")

    End Function

但它并没有给我所有的打印机。我不知道哪里出了问题。

未显示的打印机在网络上。我已成功连接到网络。但尽管它没有显示出来。

同时它在不同网络中的其他机器上工作正常。比为什么不在我的身上??

这个你能帮我吗。

4

1 回答 1

0

您的代码将仅显示本地安装的打印机。如果要在网络上查找打印机,可以使用 WMI 查询。

添加对System.Management命名空间的引用,然后使用以下代码:

    ' Use the ObjectQuery to get the list of configured printers
    Dim oquery As System.Management.ObjectQuery = New System.Management.ObjectQuery("SELECT * FROM Win32_Printer")

    Dim mosearcher As System.Management.ManagementObjectSearcher = New System.Management.ManagementObjectSearcher(oquery)

    Dim moc As System.Management.ManagementObjectCollection = mosearcher.Get()

    For Each mo As System.Management.ManagementObject In moc
        Debug.WriteLine(mo.ToString)
    Next

从此来源修改:http ://www.dotnetcurry.com/showarticle.aspx?ID=148

于 2014-05-15T11:33:08.380 回答