2012-01-26 11 views
6

पृष्ठभूमि का उपयोग करते हुए बिना:निगरानी प्रिंट स्पूल इंटरॉप/अप्रबंधित कोड

मैं .NET 4.0 का उपयोग कर सी # में एक आवेदन पत्र लिख रहा हूँ। यह एक निश्चित क्रम में दस्तावेजों का एक गुच्छा मुद्रित करता है। दस्तावेज सभी अलग-अलग प्रकार के होते हैं और वास्तव में "प्रिंट" क्रिया के साथ ShellExecute का उपयोग करके मुद्रित होते हैं।

यह सुनिश्चित करने के लिए कि आदेश जुड़ा हुआ नहीं है, मैं प्रिंटर के लिए प्रिंट कतार की जांच करना चाहता हूं। मेरा मुख्य पाश लगेगा जैसे: दस्तावेज़

  • प्रतीक्षा दस्तावेज़ तक
  • किया

  • दोहराएँ प्रिंट कतार में दिखाने के लिए मैं कैसे निगरानी कर सकते हैं पर

    1. आह्वान "प्रिंट" कार्रवाई प्रबंधित कोड का उपयोग कर प्रिंट कतार?

      मुझे अप्रबंधित कॉल (जैसे: http://blogs.msdn.com/b/martijnh/archive/2009/08/05/printmonitor-a-c-print-spooler-monitor.aspx) का उपयोग करके समान चीजों को करने के कुछ शानदार उदाहरण मिले। साथ ही, मुझे पता है कि स्पूल की गई फ़ाइलों को c: \ windows \ system32 \ spool ... और चीज़ों को इस तरह से समझें।

      हाउवर, इनमें से कोई भी समाधान बहुत संतोषजनक नहीं है ... अप्रबंधित कॉड की मात्रा के साथ मैं कह रहा हूं कि मुझे बस सी ++ में ऐप लिखना चाहिए। (और .NET निर्भरता/ओवरहेड नहीं है।)

      मुख्य प्रश्न: क्या केवल प्रबंधित कॉल का उपयोग करके प्रिंट कतार की निगरानी करने का कोई तरीका नहीं है?

      अधिक सामान्य प्रश्न: मैं जावा दुनिया से आते हैं, और जब मैं कुछ ओएस विशिष्ट या कुछ और एमएस दुनिया में अन्य बातों के साथ बातचीत करने की जरूरत है कि क्या करना चाहते हैं कि विशेष तौर पर नेट भाषाओं का उपयोग करें। (उदाहरण के लघु उद्योगों घटकों के लिए।)

      यह मैं एक परियोजना मैं इस एक ही गंदगी में समाप्त शुरू हर बार की तरह लगता है: देशी काम करता है, COM सामान, आदि के लिए कॉल के सभी प्रकार, आदि

      माध्यमिक प्रश्न : क्या .NET दर्शन या कार्यान्वयन के बारे में कुछ याद आ रहा है? (क्या मैं प्रबंधित पुस्तकालयों के लिए चीजों को करने के लिए पर्याप्त कठिन नहीं देख रहा हूं? क्या .NET को कुछ भी करने के लिए गलत विकल्प है जो विंडोज-विशिष्ट चीजों को प्रिंट कतार में हेरफेर करने की ज़रूरत है?) मुझे मिलता है (या मुझे लगता है कि) .NET सैद्धांतिक रूप से ओएस-स्वतंत्र होना चाहिए .. लेकिन निश्चित रूप से अधिकांश आधुनिक ऑपरेटिंग सिस्टम में प्रिंटर और प्रिंट कतार और ऐसी चीजें हैं। (तो अगर आप चीजों के इन प्रकार के कर के लिए सामान्य कॉल था, वे ढांचे के एक मंच के संस्करण पर लागू किया जा सकता ..)

  • +0

    डाउनवॉट्स क्यों? यह एक बहुत ही विशिष्ट प्रोग्रामिंग प्रश्न है। द्वितीयक, अधिक अस्पष्ट सवाल सिर्फ एक तरफ है। (क्योंकि ऐसा लगता है कि मेरे विशिष्ट प्रश्न की जड़ एक मौलिक गलतफहमी हो सकती है।) – user426724

    उत्तर

    5

    मुख्य प्रश्न: System.Printing नाम स्थान में PrintQueue पर एक नज़र और LocalPrintServer वर्ग लो।

    माध्यमिक प्रश्न: .NET को ओएस-स्वतंत्र (सैन्स मोनो) के रूप में नहीं लिखा गया था, इसे विंडोज संस्करण स्वतंत्र माना गया था। हालांकि यह अच्छा होगा केवल प्रबंधित वस्तुओं और प्रबंधित कॉल के साथ सौदा, मैं इसे कुछ हद तक अवास्तविक उम्मीद के रूप में देखता हूं। विंडोज़ द्वारा उजागर मौजूदा सी और कॉम कार्यों का आकार और मात्रा सब कुछ एक कठिन काम लपेटती है। जबकि मुझे यकीन है कि माइक्रोसॉफ्ट के पास पेरोल पर कई डेवलपर्स हैं, तो मैं कहूंगा कि COM & पी/उपयोग के लिए अपेक्षाकृत आसान उपयोग पर विचार करते हुए निवेश पर वापसी इस तरह के उपक्रम के लिए काफी कम है।

    +0

    सही के बारे में लगता है। – Kir

    +0

    यह ठीक है * क्यों * COM और P/Invoke समर्थन इतना उपलब्ध और उपयोग करने में आसान बनाया गया था। वे केवल सबसे आम विशेषताओं को लपेटते हैं। –

    +0

    वह, काम करता है, उत्तर के लिए धन्यवाद। @ कोडी ग्रे: क्या विंडोज़ संस्करण-स्वतंत्र लक्ष्य को अस्वीकार नहीं करता है? या वे मानते हैं कि अधिकतर ऐप्स केवल उन सामान्य विशेषताओं का उपयोग करके निर्माण कर सकते हैं जिन्हें वे लपेटते हैं? – user426724

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