HOW TO:设置默认打印机

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
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值