




















Author:水如烟
需要引用System.Management空间再Imports System.Management
使用:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For Each printer As String In PrinterService.GetPrinterNames(".")
Console.WriteLine(printer)
Next
End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Console.WriteLine(PrinterService.SetDefaultPrinter(".", "EPSON LQ-1600KIII"))
End Sub
Public Class PrinterServicePublic Shared Function GetPrinterNames(ByVal computerName As String) As String()
Dim mResult(-1) As StringDim gManagementObject As New ManagementObject
gManagementObject.Scope = New ManagementScope(String.Format("\\{0}\root\cimv2", computerName))
Dim gSearcher As New ManagementObjectSearcher(String.Format("SELECT DeviceID FROM {0}", "Win32_Printer"))
gSearcher.Scope = gManagementObject.Scope
Try
For Each mManagementObject As ManagementObject In gSearcher.Get()
ReDim Preserve mResult(mResult.Length)
mResult(mResult.Length - 1) = mManagementObject.Properties.Item("DeviceID").Value
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
gSearcher.Dispose()
gManagementObject.Dispose()
End TryReturn mResult
End FunctionPublic Shared Function SetDefaultPrinter(ByVal computerName As String, ByVal PrinterName As String) As Boolean
Dim mResult As Boolean = FalseDim gManagementObject As New ManagementObject
gManagementObject.Scope = New ManagementScope(String.Format("\\{0}\root\cimv2", computerName))
Dim gSearcher As New ManagementObjectSearcher(String.Format("SELECT DeviceID FROM {0}", "Win32_Printer"))
gSearcher.Scope = gManagementObject.Scope
Try
For Each mManagementObject As ManagementObject In gSearcher.Get()
If mManagementObject.Properties.Item("DeviceID").Value.ToString.Equals(PrinterName) Then
mManagementObject.InvokeMethod("SetDefaultPrinter", Nothing)
Exit For
End If
Next
mResult
= True此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。