vb.net 设置默认打印机

Public g_PrintSet As New System.Drawing.Printing.PrinterSettings
Public g_PageSet As New System.Drawing.Printing.PageSettings

'printer是打印机的名字或者打印机的网络地址,都可以。因为System.Drawing.Printing.PrinterSettings.InstalledPrinters中保存了所有在机器上安装的打印机
For iIndex = 0 To System.Drawing.Printing.PrinterSettings.InstalledPrinters.Count - 1
if System.Drawing.Printing.PrinterSettings.InstalledPrinters.Item(iIndex).Contains(printer) Then
MessageBox.Show(System.Drawing.Printing.PrinterSettings.InstalledPrinters.Item(iIndex))
g_PrintSet.PrinterName = System.Drawing.Printing.PrinterSettings.InstalledPrinters.Item(iIndex)
End If
Next iIndex
g_Print.PrinterSettings = g_PrintSet

设置defaultprinter

Imports System.Management

'SUB 中

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


Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
gSearcher.dispose()
gManagementObject.dispose()
End Try

如果你是用的Crystal report,
Rpt.PrintOptions.PrinterName = PrinterName
Rpt.PrintToPrinter(1,False,0)

获取计算机名

Systeminformation.ComputerName

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...