2011-11-17 20 views
7

मैं यह जानना चाहता हूं कि कोई प्रिंटर ऑनलाइन/ऑफ़लाइन प्रिंट करने का प्रयास कर रहा है से पहले। यदि यह ऑफ़लाइन है - प्रिंट संवाद दृश्यमान नहीं होगा।यह पता लगाने के लिए कि कोई कनेक्टेड यूएसबी प्रिंटर चालू या बंद है या नहीं?

Win32 एपीआई "OpenPrinter" आदि स्पूलर कतार, बल्कि प्रिंटर से भी पर काम करने लगता है, और केवल बहुत देर हो चुकी whichis प्रिंटर ऑफ़लाइन रिपोर्ट करेंगे के बाद एक दस्तावेज़ भेज दिया जाता है,।

प्रश्न: मैं कैसे बता सकता हूं कि प्रिंटर ऑफ़लाइन/ऑनलाइन प्रिंट आउट किए बिना ऑनलाइन है?

संपादित करें:

Offline - printer is turned off 
OnLine - printer is turned On 
+0

इस प्रश्न के उद्देश्य के लिए ऑनलाइन/ऑफलाइन का क्या अर्थ है? ऑफ़लाइन का मतलब डिस्कनेक्ट होता है, या क्या कोई अन्य शर्त है जिसे आप इस तरह पकड़ना चाहते हैं? – 0xC0000022L

उत्तर

0

मुझे नहीं लगता कि यह संभव है।

जैसा कि आप पहले ही पाए गए हैं कि यह स्पूलर का उपयोग करके सारणीबद्ध है और स्पूलर स्थिति हमेशा प्रिंटर स्थिति को प्रतिबिंबित नहीं करती है।

तो यह विंडोज़ में डिज़ाइन द्वारा है।

यदि आपके पास केवल एक विशिष्ट प्रिंटर प्रकार है तो आप पूछ सकते हैं कि यह यूएसबी से जुड़ा हुआ है या नहीं।

+0

http://stackoverflow.com/questions/4838033/getting-the-port-name-of-a-connected-usb-device –

+0

असल में आप इसे एकाधिक प्रिंटर से जुड़े भी पूछ सकते हैं। – 0xC0000022L

+0

निश्चित रूप से, मेरा मतलब था कि प्रोग्राम को विभिन्न प्रणालियों पर एकाधिक प्रिंटर प्रकारों से पूछना पड़ता है, यह अधिक जटिल हो सकता है। –

4

संभवतः आप प्रिंटर का नाम या इसके बारे में अन्य विवरण जानते हैं।

ठीक है, तो बस PRINTER_INFO_2 साथ EnumPrinters का उपयोग करें और PRINTER_STATUS_OFFLINE के लिए जाँच (या किसी भी अन्य स्थिति है कि आप चाहते हैं बचने के लिए)।

वैकल्पिक रूप से आप यह पता लगाने के लिए SetupDi* फ़ंक्शंस (उर्फ सेटअप एपीआई) का उपयोग करने का प्रयास कर सकते हैं कि प्रिंटर से मेल खाने वाला यूएसबी डिवाइस इस पल में जुड़ा हुआ है या नहीं।

+0

+1 यूएसबी मिलान डिवाइस की जांच करना अच्छी दिशा है। हो सकता है कि एक नई पोस्ट के लिए कॉल करें। – menjaraz

संबंधित मुद्दे

 संबंधित मुद्दे