2012-10-05 6 views
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 

를 나열하지만 어떻게 내가 그들 중 하나를 삭제할 수 있습니다 방법은 다음과

은? 이 작업을 수행하는 기본 제공 방법이 있습니까?

답변

3

System.Management.ManagementScope을 통해 프린터에 쿼리하는 경우 클래스의 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 
+0

거의 작동 중! 'delete'오류 메시지를 제외하고 'System.Management.ManagementBaseObject'의 구성원이 아닙니다. ManagementObjectSearcher에 문제가 있습니까? –

+0

내 편집을 참조하십시오. For Each Printer In 대신'For ​​Each Printer as ManagementObject'를 시도하십시오. – sloth