02-02-22, 07:26 PM
كود :
Imports System.Drawing.Printing
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim strInstalledPrinters As String
Dim prntDoc As New PrintDocument
'check if there is installed printer
If PrinterSettings.InstalledPrinters.Count = 0 Then
MsgBox("No printer installed")
Exit Sub
End If
'display installed printer into combobox list item
For Each strInstalledPrinters In PrinterSettings.InstalledPrinters
ComboBox1.Items.Add(strInstalledPrinters)
Next strInstalledPrinters
'Display current default printer on combobox texts
ComboBox1.Text = prntDoc.PrinterSettings.PrinterName
Button1.Text = "Set Default Printer"
End Sub
'Function to set a printer as default
Function SetDefaulPrinter(ByVal strPrinterName As String) As Boolean
Dim strCurrPrinter As String
Dim WsNetwork As Object
Dim prntDoc As New PrintDocument
strCurrPrinter = prntDoc.PrinterSettings.PrinterName
WsNetwork = Microsoft.VisualBasic.CreateObject("WScript.Network")
Try
WsNetwork.SetDefaultPrinter(strPrinterName)
prntDoc.PrinterSettings.PrinterName = strPrinterName
'set default if selected printer name is a valid installed printer
If prntDoc.PrinterSettings.IsValid Then
Return True
Else
WsNetwork.SetDefaultPrinter(strCurrPrinter)
Return False
End If
Catch ex As Exception
WsNetwork.SetDefaultPrinter(strCurrPrinter)
Return False
Finally
WsNetwork = Nothing
prntDoc = Nothing
End Try
End Function
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
If SetDefaulPrinter(ComboBox1.Text) = True Then
MsgBox("Printer default " & ComboBox1.Text)
Else
MsgBox("Printer name " & ComboBox1.Text & " is not valid!")
End If
End Sub
End Class