惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
Y
Y Combinator Blog
月光博客
月光博客
IT之家
IT之家
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
L
LangChain Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
博客园 - Franky
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
V
Visual Studio Blog
小众软件
小众软件
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium

博客园 - 水如烟(LzmTW)

.NET的变量在代码集中是不安全的 HOW TO:获取硬盘物理序列号(VB.NET) 一个创建快捷方式类 一个简单的CodeAccessPermission生成器 认识一下Attribute HOW TO:端口打印(比较粗糙) 标记法定义和创建数据库(四) 标记法定义和创建数据库 Sql2005数据类型与Framework类型的对应关系 HOW TO:重启程序(WinForm) HOW TO:避免“将COM对象与其基础RCW分开后不能再使用该对象”错误 HOW TO:控制是否允许用户退出ExcelApplication的Workbook 树和自联表(五) 树和自联表(六) 树和自联表(四) 树和自联表(一) 行政区划数据数据库的设计(脚本) 行政区划数据数据库的设计(七) 行政区划数据数据库的设计(六)
HOW TO:设置默认打印机
水如烟(LzmTW) · 2006-12-21 · via 博客园 - 水如烟(LzmTW)

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 StringAs String()
        
Dim mResult(-1As 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 StringByVal PrinterName As StringAs 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
        
Catch ex As Exception
            Console.WriteLine(ex.Message)
        
Finally
            gSearcher.Dispose()
            gManagementObject.Dispose()
        
End TryReturn mResult
    
End Function
End Class