0

ローカルコンピューターにインストールされているプリンターでいっぱいのリストビューを備えたデスクトップアプリケーションがあります。これは管理されている単純なプリンターなので、アイテムを右クリックして、その特定のプリンターを削除できるようにしたいと思います。これどうやってするの?

これが私がプリンターをリストする方法です

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

しかし、どうすればそれらの1つを削除できますか?これを行うための組み込みの方法はありますか?

4

1 に答える 1

3

を介してプリンタにクエリを実行すると、クラスのメソッドをSystem.Management.ManagementScope使用してプリンタを簡単に削除できます。DeleteManagementObject

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
于 2012-10-05T11:52:02.510 に答える