您的位置:首页 > 其它

HOW TO:设置默认打印机

2006-12-21 12:32 330 查看
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 Sub

Private 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 PrinterService

Public Shared Function GetPrinterNames(ByVal computerName As String) As String()
Dim mResult(-1) As String

Dim 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 Try

Return mResult
End Function

Public Shared Function SetDefaultPrinter(ByVal computerName As String, ByVal PrinterName As String) As Boolean
Dim mResult As Boolean = False

Dim 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
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
gSearcher.Dispose()
gManagementObject.Dispose()
End Try

Return mResult
End Function
End Class
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: