حسین علوی
یک شنبه 30 دی 1386, 15:30 عصر
سلام
فرض کنیم پرینتری با نام HP LaserJet 8100 Series PS داریم چگونه میتوان این پرینتر را پیشفرض کرد بدون استفاده از common dialog.showprinter
حسین علوی
یک شنبه 30 دی 1386, 19:22 عصر
لطفا یکی از اساتید راهنمایی کنه....
__siavash__
یک شنبه 30 دی 1386, 19:59 عصر
پرینتر پیش فرض رو برای برنامه شما تغییر میده !
Dim X As Printer
For Each X In Printers
If X.DeviceName = "FinePrint pdfFactory Pro" Then
Set Printer = X
End If
Next
این کد پرینتر Defult ویندوز رو به پرینتر مورد نظر تغییر میده !
که من در این کد "FinePrint pdfFactory Pro" رو به عنوان پرینتر پیشفرض قرار دادم.
Option Explicit
Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const HWND_BROADCAST = &HFFFF
Private Const WM_WININICHANGE = &H1A
Private Sub SetDefaultPrinter(ByVal PrinterName As String, _
ByVal DriverName As String, ByVal PrinterPort As String)
Dim DeviceLine As String
Dim r As Long
Dim l As Long
DeviceLine = PrinterName & "," & DriverName & "," & PrinterPort
r = WriteProfileString("windows", "Device", DeviceLine)
l = SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, "windows")
End Sub
Private Sub Command1_Click()
Dim X As Printer
For Each X In Printers
If X.DeviceName = "FinePrint pdfFactory Pro" Then
' Set printer as system default.
SetDefaultPrinter X.DeviceName, X.DriverName, X.Port
' Stop looking for a printer.
Exit For
End If
Next
End Sub
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.