2008-08-25 11 views
8

मेरे सहकर्मी और मुझे एक ग़लत स्थिति का सामना करना पड़ा है जहां हमें एक पृष्ठ पर एक वेब कैमरा में हेरफेर करने के लिए एक सक्रिय एक्स नियंत्रण का उपयोग करना होगा।सक्रिय एक्स नियंत्रण जावास्क्रिप्ट

क्या सक्रिय x नियंत्रण में एक बटन पर जावास्क्रिप्ट ईवेंट हैंडलर असाइन करना संभव है ताकि क्लिक किए जाने पर पृष्ठ पर कोई कार्रवाई हो, या हमें HTML पृष्ठ पर एक बटन बनाना होगा जो मैन्युअल रूप से सक्रिय एक्स नियंत्रण और फिर पृष्ठ पर किसी भी आवश्यक कार्रवाई को आग लग सकता है?

उत्तर

7

कृपया बस मौजूदा ActiveX नियंत्रण का उपयोग करें। फ्लैश या सिल्वरलाइट की तरह। फ्लैश में अंतर्निहित वेबकैम समर्थन है और जावास्क्रिप्ट के माध्यम से नियंत्रित है। सिल्वरलाइट में अंतर्निहित कैमरा समर्थन नहीं है, लेकिन यह जावास्क्रिप्ट एकीकरण शानदार है।

यदि आपको अपना खुद का लिखना चाहिए तो परेशान नहीं होना चाहिए, जावास्क्रिप्ट के साथ बातचीत करने के लिए यह छोटा है। आपको बस IDispatch इंटरफ़ेस का खुलासा करना होगा।

घटनाओं के लिए, आपको Connection Points के बारे में जानने की आवश्यकता है।

4

हाँ! आप C++/ActiveX भूमि में ईवेंट फेंक सकते हैं जो जावास्क्रिप्ट कोड को इवेंट हैंडलर फ़ंक्शन चलाता है। मैं जावास्क्रिप्ट और सीएसएस के माध्यम से अपने सभी जीयूआई काम करने वाले बटन या दृश्य प्रतिक्रिया के साथ एक संपूर्ण अदृश्य ActiveX नियंत्रण (पृष्ठ पृष्ठभूमि के समान रंग) बनाने में भी सक्षम था।

संपादित करें: फ्रैंक की सलाह सही है। Here's the link on scripting events.

मेरे रणनीति जब मैं ब्राउज़र में अपडेट के लिए मजबूर करना चाहता था एक सी ++ समारोह MyUpdate कहा जाता है (जो IConnectionPoint लागू करता है) कॉल करने के लिए किया गया था।

(साथ ही, मैंने फ़ायर_MyUpdate विधि में विंडोज संदेशों को पंप करना सुनिश्चित किया है क्योंकि कभी-कभी जावास्क्रिप्ट कोड ActiveX नियंत्रण पर विधियों को कॉल करके सी ++ भूमि में वापस कॉल करेगा; यह ब्राउज़र को ठंडा करने से बचाता है और यह सुनिश्चित करता है कि जावास्क्रिप्ट जीयूआई उत्तरदायी रहता है एक बटन रद्द के लिए जैसे)

ब्राउज़र तरफ, जावा स्क्रिप्ट कोड वैश्विक चर वस्तु को संदर्भित, के बाद "::", विधि नाम और उसके बाद है:।

function Uploader::MyUpdate() 
{ 
    // ... code to fetch the current state of various 
    // properties from the Uploader object and do something with it 
    // for example check Uploader.IsActive and show or hide an HTML div 
} 
संबंधित मुद्दे