Αναγν. άρθρου: 160129 - Τελευταία αναθεώρηση: Σάββατο, 18 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0 Τρόπος λήψης της κατάστασης εκτυπωτή και μιας εργασίας εκτύπωσης
Σε αυτήν τη σελίδαΠερίληψηΗ κατάσταση των εκτυπωτών και των εργασιών εκτύπωσης ενημερώνονται από την ουρά εκτύπωσης Win32 κατά τη διάρκεια της despool μιας εργασίας εκτύπωσης. Όλες τις άλλες φορές, όταν αυτός ο εκτυπωτής δεν είναι despooling και αναφέρει πληροφορίες κατάστασης, θεωρείται ο εκτυπωτής είναι έτοιμη και αδράνειας. Περισσότερες πληροφορίεςΌπως αναφέρεται από το API του Win32, "εκτυπωτής" αποτελείται από το πρόγραμμα οδήγησης εκτυπωτή, η ουρά εκτύπωσης και ο φυσικός εκτυπωτής τη διαδρομή εισόδου/εξόδου.
Το λειτουργικό σύστημα αντιμετωπίζει μια φυσική εκτυπωτή ως απλώς τον προορισμό μιας εργασίας εκτύπωσης που δημιουργείται από και μέσω ενός συστήματος "Εκτυπωτή" αναφέρεται στο υπόλοιπο αυτού του άρθρου ως ένας εκτυπωτής. Το πιο ορατό τμήμα του εκτυπωτή έχει μια ουρά εκτυπώσεων. Γίνεται από τη Διαχείριση εκτυπώσεων ή τους φακέλους του εκτυπωτή σε περιβάλλοντα εργασίας χρήστη το στυλ των Windows 95. Το πρόγραμμα οδήγησης εκτυπωτή είναι η διασύνδεση με τον εκτυπωτή που χρησιμοποιείται από εφαρμογές για να δημιουργήσετε εργασίες εκτύπωσης μέσω του εκτυπωτή ελεγκτές τομέα. Η διαδρομή εισόδου/εξόδου για εκτυπωτή αποτελείται από πολλά επίπεδα του κώδικα συστήματος culminating με μια Εποπτεία θύρας. Η εποπτεία θύρας είναι η διασύνδεση φυσικής εκτυπωτή στο τέλος ροή κάτω από ένα σύστημα εκτυπωτή και είναι υπεύθυνη για τη μεταφορά των δεδομένων μιας εργασίας εκτύπωσης σε οποιαδήποτε σύνδεση υπάρχει ο φυσικός εκτυπωτής. Στην περίπτωση των εκτυπωτών διπλής κατεύθυνσης, θα είναι υπεύθυνη για τη μεταφορά δεδομένων από ο φυσικός εκτυπωτής και η εποπτεία θύρας. Αυτή η σύνδεση και ο φυσικός εκτυπωτής, είναι όπου παρουσιάζονται σφάλματα. Είναι η εργασία της εποπτείας θύρας για να αναφέρετε αυτά τα σφάλματα. Η ουρά εκτύπωσης δεν ερωτήματος για την κατάσταση του φυσικού εκτυπωτή στο οποίο είναι συνδεδεμένος ένας εκτυπωτής. Αντί για αυτό, η κατάσταση του φυσικού εκτυπωτή Καθορίζει την επιτυχία της εργασίας εκτύπωσης τη στιγμή αυτή είναι despooled πάνω από την εποπτεία θύρας. Εάν παρουσιαστεί κάποιο σφάλμα σε αυτήν τη διαδικασία, το σφάλμα είναι που αναφέρεται από την Εποπτεία της θύρας και να καταγραφεί σε πληροφορίες για την κατάσταση μιας εργασίας εκτύπωσης. Η ουρά εκτύπωσης, με τη σειρά του, μεταδίδει πληροφορίες σφάλματος λογική για την ουρά του εκτυπωτή. Κατά συνέπεια, ένα σύστημα εκτυπωτή αναφέρει καμία κατάσταση όταν η ουρά εκτυπωτή είναι κενό. Σε αυτήν την κατάσταση, ο εκτυπωτής θεωρείται έτοιμος να αποδεχθείτε εργασίες εκτύπωσης. Αυτή είναι μια έγκυρη την υπόθεση, ακόμη και αν είναι ο φυσικός εκτυπωτής επέστρεψε σφάλμα όπως κατάσταση χωρίς σύνδεση. Το λειτουργικό σύστημα θεωρεί ότι ο εκτυπωτής να αποδεχθείτε εργασίες εκτύπωσης, ακόμα και αν, για κάποιο λόγο, αυτό δεν μπορεί να ολοκληρώσει την παράδοση ο φυσικός εκτυπωτής. Μια τέτοια περίπτωση, θεωρείται κατάσταση σφάλματος του λειτουργικού συστήματος που πρέπει να αντιμετωπιστούν από το χρήστη. Δεν θεωρείται σφάλμα reportable στην εφαρμογή που επιτρέπεται να ολοκληρωθεί με επιτυχία η καταχώρηση σε ουρά της εργασίας εκτύπωσης. Προσδιορισμός της κατάστασης του φυσικού εκτυπωτήΥπάρχει ένας βασικός premise που πρέπει να ισχύει για τον προσδιορισμό της κατάστασης του φυσικού εκτυπωτή: της ουράς πρέπει να προσπαθείτε να στείλετε μια εργασία εκτύπωσης στον εκτυπωτή φυσική. Αυτή είναι η μοναδική φορά που αναφέρεται στην κατάσταση του εκτυπωτή από την εποπτεία θύρας. Επιπλέον, ενδέχεται να αναφερθεί τις πιο σημαντικές πληροφορίες στα μέλη της κατάστασης ενόςJOB_INFOδομή για αυτό συγκεκριμένη εργασία εκτύπωσης, επειδή ορισμένες εποπτεία θύρας θα ορίσετε αυτές τις τιμές απευθείας.Για ναJOB_INFOδομές που περιέχουν έναΚατάστασημέλος και έναpStatusΜέλος. Και τα δύο μέλη περιέχουν πληροφορίες για την κατάσταση μιας εργασίας εκτύπωσης που αναφέρεται από την εποπτεία θύρας. These two members differ in that theΚατάστασηmember is a bit field of states that contains predetermined values, while thepStatusmember is a pointer to a string that could contain just about anything. These values are documented by the Win32 SDK and the WinSpool.h header file. Για ναpStatusmember is sometimes, but not always, set to a descriptive status string. The contents of this string are defined by each port monitor. JOB_INFOstructures are returned by two API functions: GetJob and EnumJobs. EnumJobs returns an array ofJOB_INFOstructures without requiring that the caller reference a particular job in the Printer queue. The print job that is currently despooling (printing) contains the status information. To find this job in the array, search the array ofJOB_INFOstructures to locate the print job whose Status member has the JOB_STATUS_PRINTING bit set. An easier method of determining the printer status is to examine the Status member of aPRINTER_INFOstructure. This structure is returned by theGetPrinterFunction. There is a disadvantage to this approach in that there is nopStatusstring member in aPRINTER_INFOstructure that might provide more detailed or extensive state information. However, there is an advantage in that a port monitor may set some of the more extensive printer status bits of thePRINTER_INFOstructure. Note, however, that the default port monitor for Windows does not usually set more than thePRINTER_STATUS_ERRORbit of a Printer's Status member. Note that the Status members of either set of structures may contain state information that is not strictly related to the physical printer. For example, the Status member of thePRINTER_INFOstructures may be set withPRINTER_STATUS_PAUSEDήPRINTER_STATUS_PENDING_DELETION, that are strictly relevant to the Print Queue. Also, the Status member of theJOB_INFOstructure may contain state values forJOB_STATUS_PAUSEDήJOB_STATUS_DELETING, that are relevant only to that particular print job. Note, also, that print jobs may accumulate in a Print queue after they have despooled and would be left with a state ofJOB_STATUS_PRINTED. Each of these functions requires a handle to a printer to identify the desired Printer. This handle is obtained from theOpenPrinterfunction, that accepts a string containing the name of the printer. This name can be either the local name of the printer or a UNC share name to a network printer. The following sample code demonstrates how to call theEnumJobsfunction properly to retrieveJOB_INFOstructures and how to call theGetPrinterfunction to retrievePRINTER_INFOstructures: Δείγμα κώδικαΑναφορέςFor additional information about general instructions on calling Win32 Spooler functions, click the following article number to view the article in the Microsoft Knowledge Base: 158828
(http://support.microsoft.com/kb/158828/
)
How To Call Wind32 Spooler enumeration APIs properly
Μηχανικά μεταφρασμένοΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης. Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:160129
(http://support.microsoft.com/kb/160129/en-us/
)
| Άλλοι πόροι Tοποθεσίες υποστήριξης
ΚοινότηταΜεταφράσεις άρθρων
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Επιστροφή στην αρχή