Πως μπορω να θεσω τον εκτυπωτη χωρις συνδεση με κωδικα VB6;

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
geo1st487
Δημοσιεύσεις: 82
Εγγραφή: 05 Φεβ 2009 21:52

Πως μπορω να θεσω τον εκτυπωτη χωρις συνδεση με κωδικα VB6;

Δημοσίευση από geo1st487 » 22 Απρ 2009 11:43

Πως μπορω να θεσω τον εκτυπωτη με χρήση χωρις συνδεση με VB6; Βρηκα τον παρακατω κωδικα που δεν δουλευει.

Private Declare Function SetPrinterApi Lib "winspool.drv" Alias _
"SetPrinterA" (ByVal hPrinter As Long, _
ByVal Level As Long, _
buffer As Long, _
ByVal Command As Long) As Long


Private Type PRINTER_DEFAULTS
pDatatype As String
pDevMode As Long
DesiredAccess As Long
End Type

Private Declare Function OpenPrinter Lib "winspool.drv" _
Alias "OpenPrinterA" (ByVal pPrinterName As String, _
phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long


Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long


Private Enum PrinterAccessRights
PRINTER_ACCESS_ADMINISTER = &H4
PRINTER_ACCESS_USE = &H8
PRINTER_ALL_ACCESS = &HF000C
End Enum


Private Enum Printer_Status
PRINTER_STATUS_OFFLINE = &H80
PRINTER_STATUS_NOT_AVAILABLE = &H1000
PRINTER_STATUS_IO_ACTIVE = &H100
PRINTER_STATUS_READY = &H0
End Enum


Private Enum Printer_Control_Commands
PRINTER_CONTROL_PAUSE = 1
PRINTER_CONTROL_RESUME = 2
PRINTER_CONTROL_PURGE = 3
PRINTER_CONTROL_SET_STATUS = 4
End Enum


Private Sub SetPrinterStatus(ByVal DeviceName As String, ByVal newStatus As Printer_Status)

Dim lret As Long
Dim mhPrinter As Long
Dim pDef As PRINTER_DEFAULTS

'\\ Open the printer in admin. mode
pDef.DesiredAccess = PRINTER_ALL_ACCESS
lret = OpenPrinter(DeviceName, mhPrinter, pDef)

' Set the new status
lret = SetPrinterApi(mhPrinter, newStatus, 0, PRINTER_CONTROL_SET_STATUS)
' Close the printer
Debug.Print Err.LastDllError
lret = ClosePrinter(mhPrinter)

End Sub

Private Sub Command2_Click()
SetPrinterStatus "Kostas", PRINTER_STATUS_OFFLINE
End Sub

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πως μπορω να θεσω τον εκτυπωτη χωρις συνδεση με κωδικα VB6;

Δημοσίευση από dva_dev » 22 Απρ 2009 12:23

To modify the current printer settings, call the GetPrinter function to retrieve the current settings into a PRINTER_INFO_2 structure, modify the members of that structure as necessary, and then call SetPrinter.
http://msdn.microsoft.com/en-us/library ... S.85).aspx

geo1st487
Δημοσιεύσεις: 82
Εγγραφή: 05 Φεβ 2009 21:52

Πως μπορω να θεσω τον εκτυπωτη χωρις συνδεση με κωδικα VB6;

Δημοσίευση από geo1st487 » 22 Απρ 2009 15:14

Το παρακατω link δειχνει πως ενεργοποιείται/απενεργοποιείται ο εκτυπωτής σε C#
http://support.microsoft.com/kb/315720/en-us

και με βαση αυτο το link εχω τον παρακατω κωδικα τον οποιο οταν ετρεξα εμφάνισε στην κατάσταση του εκτυπωτή Εμπλοκή χαρτιου - Εκτυπωση - Δεν ειναι διαθεσιμο - Αναμονή - Επεξεργασια - ... κλπ

Private Declare Function SetPrinterApi Lib "winspool.drv" Alias _
"SetPrinterA" (ByVal hPrinter As Long, _
ByVal Level As Long, _
buffer As Long, _
ByVal Command As Long) As Long

Private Type PRINTER_DEFAULTS
pDatatype As String
pDevMode As Long
DesiredAccess As Long
End Type

Private Declare Function OpenPrinter Lib "winspool.drv" _
Alias "OpenPrinterA" (ByVal pPrinterName As String, _
phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long


Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long


Private Enum PrinterAccessRights
PRINTER_ACCESS_ADMINISTER = &H4
PRINTER_ACCESS_USE = &H8
PRINTER_ALL_ACCESS = &HF000C
End Enum


Private Enum Printer_Status
PRINTER_STATUS_OFFLINE = &H80
PRINTER_STATUS_NOT_AVAILABLE = &H1000
PRINTER_STATUS_IO_ACTIVE = &H100
PRINTER_STATUS_READY = &H0
End Enum


Private Enum Printer_Control_Commands
PRINTER_CONTROL_PAUSE = 1
PRINTER_CONTROL_RESUME = 2
PRINTER_CONTROL_PURGE = 3
PRINTER_CONTROL_SET_STATUS = 4
End Enum


Private Sub Command1_Click()
Dim lret As Long
Dim mhPrinter As Long
Dim pDef As PRINTER_DEFAULTS

' Open the printer in admin. mode
pDef.DesiredAccess = PRINTER_ALL_ACCESS
lret = OpenPrinter("Kostas", mhPrinter, pDef)

' Set the new status
lret = SetPrinterApi(mhPrinter, 0, PRINTER_STATUS_OFFLINE, PRINTER_CONTROL_SET_STATUS)

' Close the printer
lret = ClosePrinter(mhPrinter)
End Sub

geo1st487
Δημοσιεύσεις: 82
Εγγραφή: 05 Φεβ 2009 21:52

Πως μπορω να θεσω τον εκτυπωτη χωρις συνδεση με κωδικα VB6;

Δημοσίευση από geo1st487 » 24 Απρ 2009 11:34

Ξέρει κανεις πως μπορω με VB6 να θεσω τον εκτυπωτη σε παυση; Ο λογος που θελω να θεσω τον εκτυπωτη σε εργασια χωρις συνδεση ή σε παυση ειναι για να κραταω εκτυπωσεις στην ουρα οταν ο χρηστης επιλεξει να εκτυπωσει ενα εγγραφο απο notepad, word, excel κλπ.

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες