【问题标题】:Delete local printer删除本地打印机
【发布时间】:2012-10-05 11:34:32
【问题描述】:

我有一个桌面应用程序,其中包含一个列表视图,其中填充了我本地计算机上已安装的打印机。这是一个简单的打印机管理,所以我希望能够右键单击一个项目,然后删除该特定打印机。我该怎么做?

这是我列出打印机的方式

Public Sub listInstalledPrinters()
        Dim i As Integer
        Dim pkInstalledPrinters As String

        For i = 0 To printersettings.InstalledPrinters.Count - 1
            pkInstalledPrinters = PrinterSettings.InstalledPrinters.Item(i)
            listViewLocal.Items.Add(pkInstalledPrinters, nIndex)
        Next

    End Sub

但是我怎样才能删除其中之一呢?有内置的方法吗?

【问题讨论】:

    标签: vb.net printing


    【解决方案1】:

    如果您通过System.Management.ManagementScope 查询打印机,您可以使用ManagementObject 类的Delete 方法轻松删除它们。

    Dim scope = New ManagementScope(ManagementPath.DefaultPath)
    scope.Connect()
    Dim printers = New ManagementObjectSearcher(scope, new SelectQuery("select * from Win32_Printer")).[Get]()
    For Each printer As ManagementObject In printers
        Dim nameOfPrinter = printer("Name").ToString()
    
         If nameOfPrinter = "ThePrinterYouWantToDelete" Then
             printer.Delete()
         End If
    Next
    

    【讨论】:

    • 几乎可以工作了!除了错误消息“删除”不是“System.Management.ManagementBaseObject”的成员。 ManagementObjectSearcher 出了什么问题?
    • 查看我的编辑。试试For Each printer As ManagementObject In 而不是For Each printer In
    猜你喜欢
    • 2014-05-14
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多