2011-03-10 19 views
7

में किसी फ़ोल्डर से प्रोग्रामर को प्रोग्राम करने के बराबर करें, मुझे अपने ग्राहकों के कंप्यूटर में ड्राइवर स्थापित करने की आवश्यकता है। दुर्भाग्य से, अभी ऐसा करने के लिए एक ही रास्ता चल रहा है विंडोज अपने "हार्डवेयर अद्यतन विज़ार्ड" दिखाने के उपकरण प्लग इन है, और फिर उपयोगकर्ता है निम्न कार्य करें:विंडोज XP या उच्चतर

  • "नहीं, इस बार नहीं" का चयन करें ,
  • "एक विशिष्ट स्थान (उन्नत) से स्थापित करें" का चयन करें,
  • चेक या अनचेक उचित चेक बॉक्स और कि ड्राइवरों

जो सब के सब धीमी गति से और एक गैर तकनीकी जानकारों के लिए अमित्र है वाले फ़ोल्डर का चयन करें उपयोगकर्ता। उन लोगों के लिए जो कई कंप्यूटरों में डिवाइस को स्थापित करना चाहते हैं, यह भी एक दोहराव और कष्टप्रद प्रक्रिया है।

तो, मैं एक बहुत ही सरल प्रोग्राम लिखने की कोशिश कर रहा हूं जो उपयोगकर्ता को डिवाइस में प्लग करने के लिए प्रेरित करेगा। फिर कार्यक्रम स्वचालित रूप से ऊपर एक ही कदम करेगा। मेरे प्रश्न:

  • मुझे आश्चर्य है कि एक विंडोज एपीआई है जो फ़ोल्डर में ड्राइवरों की तलाश में है, क्योंकि विज़ार्ड यही करता है।
  • मैंने अभी DriverPackageInstall फ़ंक्शन की खोज की है। पैरामीटर के रूप में .inf फ़ाइल को पास करना चाहते हैं जो मैं चाहता हूं? (इस बीच परीक्षण करने के लिए मैं कोड लिखूंगा, बस मुझे विंडोज चालक किट डाउनलोड करने और एक प्रोजेक्ट स्थापित करने के लिए कुछ समय दें ...)।
  • कोई अन्य सुझाव?
+0

क्या आपने ड्राइवर लिखा था? –

+0

@ डेविड हेफ़र्नन: नहीं। मेरे पास सिर्फ .inf फ़ाइल के साथ एक फ़ोल्डर है और कुछ फ़ाइलों को इंस्टॉलेशन के दौरान System32 पर कॉपी किया गया है। –

+0

@ जोंग क्या आप बस अपने उपयोगकर्ताओं को .inf पर राइट क्लिक करने के लिए प्राप्त कर सकते हैं और इंस्टॉल का चयन कर सकते हैं? उन्हें उठाने की आवश्यकता हो सकती है। संभावित रूप से क्लीनर एक .msi की आपूर्ति करने के लिए ड्राइवर विक्रेता से पूछेगा या शायद अपना खुद का भी लिख सकता है। –

उत्तर

4

आपने विंडोज का कौन सा संस्करण निर्दिष्ट नहीं किया है।

विंडोज 7 वहाँ `pnputil पर:

c:\>pnputil -? 
Microsoft PnP Utility 
Usage: 
------ 
pnputil.exe [-f | -i] [ -? | -a | -d | -e ] <INF name> 
Examples: 
pnputil.exe -a a:\usbcam\USBCAM.INF  -> Add package specified by USBCAM.INF 
pnputil.exe -a c:\drivers\*.inf   -> Add all packages in c:\drivers\ 
pnputil.exe -i -a a:\usbcam\USBCAM.INF -> Add and install driver package 
pnputil.exe -e       -> Enumerate all 3rd party packages 
pnputil.exe -d oem0.inf     -> Delete package oem0.inf 
pnputil.exe -f -d oem0.inf    -> Force delete package oem0.inf 
pnputil.exe -?       -> This usage screen 

प्रोग्राम के रूप में, आप DiInstallDriver

+0

मैं यह निर्दिष्ट करना भूल गया कि वास्तव में विंडोज का कौन सा संस्करण है। अधिकांश कंप्यूटर जहां यह ड्राइवर स्थापित किया जा रहा है, वे XP हैं, इसलिए मुझे डर है कि पनपुतिल और डिइन्स्टलड्राइवर उपलब्ध नहीं होगा। DiInstallDriver के लिए –

+0

+1 –

1

DIFx उपयोग कर सकते हैं (Windows DDK में पाया) माइक्रोसॉफ्ट ड्राइवरों को स्थापित करने के लिए सिफारिश की तरीका है। डीपीइन्स्ट एकमात्र उपकरण है और डिएक्स एपीआई प्रोग्रामेटिक तरीका है।

यदि ड्राइवर हस्ताक्षरित है, तो आप इसे पूर्वस्थापित करने के लिए DPInst (या DifX API) का उपयोग कर सकते हैं और फिर उपयोगकर्ता को हार्डवेयर डालने के तुरंत बाद इंस्टॉल किया जाएगा (बिना किसी जादूगर या संकेतों के)।

तो ड्राइवर अहस्ताक्षरित है (यानी कोई फ़ाइल .cat पर हस्ताक्षर किए हैं), तो:

    Windows Vista और पर
  • अधिक है, तो आप इसे अपने आप को आम तौर पर एक प्रमाण पत्र यदि आप एक सीए से खरीद के साथ, प्रवेश कर सकते हैं (हालांकि स्वयं पर हस्ताक्षर संभव हो सकता है)
  • Windows XP पर, आप बर्बाद हो रहे हैं (जब तक आप कुछ असली बदसूरत हैक्स लागू)
4

ऐसे कई तरीके होते हैं और कुछ उपकरण के प्रकार पर निर्भर करती है।

ड्राइवर पैकेज स्थापित करने के लिए कई टूल हैं।

  1. DpInst एक पूरा आवेदन जो एक जादूगर को दिखा सकते हैं और एक ड्राइवर पैकेज

  2. DifXApp एक MSI पैकेज जो ड्राइवरों

  3. DifxApi है स्थापित करने के लिए इस्तेमाल किया जा सकता बनाता है स्थापित करने के लिए अनुकूलित किया जा रहा है एपीआई जो ड्राइवर स्थापित करने के लिए डीपीइन्स्ट और DifxApp का उपयोग करते हैं।

  4. सीधे SetupApi फ़ंक्शंस का उपयोग कर।

    यहां फ़ंक्शन SetupCopyOEMInf और UpdateDriverForPlugAndPlayDevices ड्राइवर सेटअप के लिए संबंधित प्रविष्टि बिंदु प्रदान करते हैं। ये WinSDK में निहित हैं।

डीपीएनटी/डिटक्सएप/डिटएक्सपी विंडोज चालक किट (डब्लूडीके) का हिस्सा हैं।