2010-07-27 13 views
9

मैं यह पता लगाने की कोशिश कर रहा हूं कि प्रोग्राम-आधारित सर्विसिंग (सीबीएस) के साथ प्रोग्रामेटिक रूप से कैसे बातचीत करें, जो मूल रूप से विश्वसनीय इन्स्टॉलर और अन्य सेवाएं हैं। लक्ष्य के साथ सीबीएस से पूछने में सक्षम होने के लक्ष्य के साथ और स्थापित पैकेज पर उनके पास कोई अन्य जानकारी प्राप्त हो सकती है। यहां एक link to a overview of it है।क्या आप प्रोग्राम-आधारित सर्विसिंग (विश्वसनीय इंस्टॉलर) के साथ प्रोग्रामेटिक रूप से बातचीत कर सकते हैं?

मूल रूप से सी/सी ++/सी # (picky नहीं) का उपयोग करके मैं एक एपीआई के माध्यम से इसके साथ बातचीत करना चाहता हूं। यह लिंक best documentation from MSDN है जो एपीआई से संबंधित है जो मुझे मिल सकता है और यह बहुत अधिक नहीं है। फिर यहां एक और MSDN documentation area है जो कुछ विवरण देता है लेकिन वास्तव में एक एपीआई के बारे में कुछ भी नहीं जिसे मैं इसके साथ बातचीत करने के लिए उपयोग कर सकता हूं। यह पैकेज प्रबंधक के अधीन है, यह है कि आप सीबीएस आधारित पैकेज स्थापित करने के लिए सीमित तरीके से कमांड लाइन के माध्यम से कैसे बातचीत कर सकते हैं। कि पिछले लिंक से सबसे अच्छा उद्धरण है:

"सीबीएस सेवा के लिए काम कर रही सिस्टम घटकों अपने ग्राहक संस्थापक के लिए विभिन्न API (जो सार्वजनिक रूप से उपलब्ध नहीं कर रहे हैं) प्रदान करता है।"

जो यह सब कह सकता है, लेकिन मैं अभी तक हारने के लिए तैयार नहीं हूं। सभी के लिए घर या कम से कम %WINDIR%\servicing है जिसमें शुरुआती के लिए CbsApi.dll है, जबकि यह एक COM DLL के रूप में पंजीकृत प्रतीत होता है, यह सार्वजनिक रूप से किसी भी वर्ग या कार्यों को सार्वजनिक रूप से प्रकट नहीं करता है। यह भी लगता है कि विवरण के सबसे कि एपीआई पहुँच उप फ़ोल्डर में हैं जैसे Packages, Sessions, Editions, Version, आदि

मैं नहीं जानता कि कई लोगों को अपने आप को और Greg Lambert के अलावा ऐसा करने की कोशिश कर रहा हो जाएगा दो साल पहले मूल रूप से एक ही प्रश्न पूछने और इस "सार्वजनिक नहीं" एपीआई को जानने की कोशिश कर रहे हैं, जो couple blog posts है। ऐसा नहीं लगता था कि उसने अभी तक इस अखरोट को तोड़ दिया था।

तो अब मैं मदद के लिए पहुंचने के लिए बिंदु पर हूं और समुदाय से पूछता हूं कि अगर किसी ने इसके लिए छुपा एपीआई तैयार किया है, या चुनौती लेना चाहते हैं और देखना चाहते हैं कि वे पता लगा सकते हैं। कोई भी जानकारी जो मुझे एक कदम करीब लेने में मदद करती है उसकी सराहना की जाती है।

+0

मेरे पास ट्रस्टेड इंस्टालर के रूप में मनमाने ढंग से कोड चलाने के लिए एक स्नीकी तकनीक है। यह शायद वह नहीं करता जो आप चाहते हैं। – Joshua

+0

@ जोशुआ वैसे यह आपके लिए क्या करता है? क्या यह आपको किसी भी तरह से सीबीएस एपीआई तक पहुंच प्रदान करता है? –

+0

सीबीएस तक पहुंच की आवश्यकता का एकमात्र कारण यह देखना है कि विशिष्ट अपडेट इंस्टॉल हैं या नहीं। इसके लिए, डीएलएल पर संस्करण संख्या अनुरोधित जानकारी प्रदान करेगी। – Joshua

उत्तर

1

सीबीएस को प्रोग्रामेटिक रूप से एक्सेस करने का सही तरीका एपीआई के माध्यम से अपने ग्राहकों के लिए है। आप जो पूरा करने की कोशिश कर रहे हैं उसके आधार पर, इसमें Windows Installer या Windows Update Agent API शामिल होंगे, जिनमें से दोनों विंडोज एसडीके में दस्तावेज हैं। सीबीएस स्वयं एक कार्यान्वयन विस्तार है और इसका उपयोग सीधे नहीं किया जाना चाहिए। थ्रू कारण इतनी कम जानकारी है कि सार्वजनिक रूप से उपलब्ध नहीं है इस तथ्य का एक संयोजन है कि अनुबंधों के बजाय कार्यान्वयन विवरण पर भरोसा करना एक बुरा अभ्यास है और सीबीएस के साथ सीधे कुछ भी करने के लिए आसान और अधिक विश्वसनीय तरीके हैं।

This part विंडोज इंस्टालर एसडीके के स्थापित घटकों के लिए पूछताछ के साथ सौदों।

+0

तकनीकी रूप से आप एक उत्तर नहीं दे रहे हैं और सिर्फ प्रश्न पूछ रहे हैं, जो टिप्पणियां हैं। मुझे लगता है कि यह स्पष्ट है कि मैं प्रोग्रामिंग करना चाहता हूं कि सीबीएस के साथ बातचीत करें। मैं एमएसआई का उपयोग नहीं करना चाहता जो इस मामले में आवश्यक एपीआई प्रदान नहीं करता है। हम पहले से ही इसका इस्तेमाल कर रहे हैं जहां हम कर सकते हैं। मैं इस बारे में कोई विवरण नहीं दे सकता कि हमें इसे एक्सेस करने की आवश्यकता क्यों है, लेकिन इसकी आवश्यकता नहीं होनी चाहिए। यदि आप जानते हैं कि "छिपी हुई" अनियंत्रित सीबीएस एपीआई तक कैसे पहुंचना है तो कृपया विवरण यहां फैलाएं और समुदाय के साथ साझा करें। :) –

+0

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

+0

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

0

शायद चीजें बदल गई हैं, क्योंकि मुझे अभी एक एमएस का Component Based Servicing Reference मिला है, जो एक COM इंटरफ़ेस को दस्तावेज करता है।

साइड नोट: मैं रेमंड चेन के ब्लॉग और इसकी प्रतिक्रिया पर a comment के माध्यम से यहां आया, जिसने आश्चर्य किया कि "घटक आधारित सेवा क्या है, यह एक आपदा क्यों है, और इसे ऑटो-सॉर्ट के साथ क्या करना है?"। मुझे अभी भी जवाब नहीं पता है।

डिस्क स्पेस भरना कंप्यूटर 7 आधारित आपदा के कारण विंडोज 7 में एक आम समस्या है।

[यदि आप एक्सप्लोरर में ऑटो-सॉर्ट अक्षम कर सकते हैं तो यह कोई समस्या नहीं होगी। -Raymond]

+0

मैं उन लोगों से पूरी तरह से अवगत हूं, और पता चला है कि दस्तावेज पुराना है, और इंटरफेस बदल गए हैं। मैं उन लोगों के लिए सही इंटरफ़ेस का पता लगाने की कोशिश कर रहा हूं जिनके लिए मैं उपयोग करना चाहता हूं और जैसे कि मेरे पास खाली समय है। मैंने प्रगति की है लेकिन कुछ भी नहीं जो पूरी तरह कार्यात्मक है। –

+0

@ रोडनी फॉली: काफी मेला। मुझे आपके प्रश्न को और अच्छी तरह से पढ़ना चाहिए था। क्या आपको उद्धृत टिप्पणी/प्रतिक्रिया के लिए कोई स्पष्टीकरण पता है? –

+0

मैंने सीबीएस को कभी भी किसी भी प्रकार की डिस्क स्पेस समस्या का कारण नहीं देखा है। मुझे लगता है कि यह एक लाल हेरिंग और कुछ और मुद्दा इस मुद्दे का कारण है। सीबीएस के साथ एकमात्र आपदा माइक्रोसॉफ्ट एपीआई प्रकाशित करने के अपने वादे से बाहर है। –

0

सीबीएस विंडोज अपडेट और अन्य सर्विसिंग के संचालन के लिए मूल रूप से है। चूंकि वे माइक्रोसॉफ्ट द्वारा खुद ही जारी किए जाते हैं, इसलिए सीबीएस के ग्राहक माइक्रोसॉफ्ट में आंतरिक टीम हैं। एपीआई सार्वजनिक रूप से जारी नहीं किया जाता है। विंडोज अपडेट्स लिखने के लिए आवश्यक टूल्स और एक्सएमएल फाइलें माइक्रोसॉफ्ट के लिए आंतरिक हैं। ऐसा कोई तरीका नहीं है कि तीसरे पक्ष के अनुप्रयोग सीबीएस प्रौद्योगिकी का उपयोग कर सकें।

+0

यह सब समझा जाता है, हालांकि सॉफ्टवेयर से निपटने के दौरान आपको कभी भी पूर्णता में बात नहीं करनी चाहिए। तीसरे पक्ष के ऐप्स सीबीएस तकनीक का उपयोग कर सकते हैं कि "कोई रास्ता नहीं" होने के बारे में आपका बयान गलत है। इस मुद्दे को हल किया गया है और मैं छुपा एपीआई को समझने में सक्षम था और मैं पिछले 7 महीनों से इसके साथ बातचीत कर रहा हूं। –

+0

@ रोडनी: और निश्चित रूप से आपने कहीं भी वैध रिवर्स इंजीनियरिंग के माध्यम से प्राप्त जानकारी पोस्ट की है ताकि अन्य लाभ उठा सकें? या आप एसओ मेटा स्नेही (वास्तव में नहीं) में से एक हैं * सहायता पिशाच * के रूप में संदर्भित करता है? –

+0

@abhik सबसे पहले हम अपने खुद के मालिकाना आईपी के तहत एक वाणिज्यिक उत्पाद के साथ एक माइक्रोसॉफ्ट पार्टनर हैं, मुझे कानूनी रूप से हमारे निष्कर्ष प्रदान करने की अनुमति नहीं है। दूसरा यदि आप मेरी एसओ प्रतिष्ठा की जांच करना चाहते हैं और मेरे द्वारा पोस्ट किए गए उत्तरों को देखना चाहते हैं, और उत्तर दिया है और किसी भी ओपन सोर्स प्रोजेक्ट्स में मैंने उन वर्षों में योगदान दिया है जो आप ऐसा करने के लिए स्वतंत्र हैं। हालांकि आपके निष्क्रिय आक्रामक तरीके से इसका मतलब है कि व्यक्ति के किसी भी वास्तविक ज्ञान के बिना कोई मदद पिशाच बल्कि कठोर है। –

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

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