2009-06-18 8 views
6

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

मैं साधारण (MFC-आधारित) पहले से ही आवेदन पत्र के साथ-साथ नेट अनुप्रयोगों के लिए भी ऐसा ही किया, लेकिन दुर्भाग्य से मैं कभी नहीं PowerBuilder अपने आप में एक आवेदन विकसित की है, तो मैं आम तौर पर इस बिंदु पर के बारे में दो समस्याओं में सोच रहा हूँ:

  1. क्या कुछ एपीआई (अधिमानतः जावा या सी/सी ++ में उपलब्ध है) जो किसी को पावरबिल्डर एप्लिकेशन की दृश्य वस्तुओं के पेड़ को पार करने देता है? मैंने पावरबिल्डर मूल इंटरफ़ेस सिस्टम पर थोड़ा सा पढ़ा है, लेकिन ऐसा लगता है कि यह सी/सी ++ में पावरबिल्डर एक्सटेंशन लिखना है जिसे बाद में पावरबिल्डर स्क्रिप्ट भाषा से बुलाया जा सकता है, है ना?

  2. अगर वहाँ कुछ एपीआई उपलब्ध है - हो सकता है PowerBuilder आवेदन पत्र भी मुझे PowerBuilder आवेदन की प्रक्रिया के भीतर किया जा रहा बिना एक PowerBuilder वस्तु पदानुक्रम के राज्य निरीक्षण की सुविधा देता है जो भारतीय दंड संहिता सक्षम एपीआई के कुछ प्रकार का पर्दाफाश? शायद एक स्वचालन इंटरफ़ेस उपलब्ध है, या कुछ COM- आधारित - या शायद कुछ और?

अभी, मेरी धारणा है कि शायद PowerBuilder आवेदन की प्रक्रिया में एक DLL इंजेक्षन और फिर इतना है कि मैं वस्तु पेड़ के लिए क्वेरी कर सकते हैं चल रहा PowerBuilder वीएम तक पहुंच हासिल करने की जरूरत है। कुछ प्रकार के आईपीसी तंत्र तब मुझे इस जानकारी को पावरबिल्डर एप्लिकेशन की प्रक्रिया से बाहर ले जाने देंगे।

क्या किसी के पास इसका कोई अनुभव है या किसी ने कुछ प्रकाश डाला है कि किसी ने इसे पहले से करने की कोशिश की है या नहीं?

सादर,

  • Frerich

उत्तर

6

पहला, आसान जवाब: मुझे लगता है कि आप जो करने की कोशिश कर रहे हैं, किया गया है। Rex from Enable जो मुझे लगता है कि आप बाद में हैं, लेकिन आईआईआरसी डेवलपर्स के साथ बात करने से करता है, यह एप्लिकेशन में बनाए गए कोड हुक पर निर्भर करता है।

जो सुझाव देता है कि मुझे नहीं लगता कि आप ऐसा करने में सक्षम होंगे जो मुझे लगता है कि आप एप्लिकेशन से पूरी तरह से बाहरी रूप से करने की कोशिश कर रहे हैं। आप WinAPIs के साथ विंडो हैंडल ले सकते हैं और इसके साथ कुछ बुनियादी चीजें कर सकते हैं, लेकिन जितना चाहें उतना नहीं। और WinAPIs के साथ DataWindows के बारे में जानकारी प्राप्त करना? रहने भी दो।

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

भी PowerBuilder वीएम स्मृति अंतरिक्ष में हुक्स के साथ

, मैं सक्षम होने के बारे में पता नहीं कर रहा हूँ कुछ पावरस्क्रिप्ट ढांचे के हुक के बिना स्मृति में ऑब्जेक्ट्स की सूची प्राप्त करने के लिए (उदाहरण के लिए ऑब्जेक्ट हैंडल के साथ प्रत्येक खुले और कन्स्ट्रक्टर पर एक सूची पॉप्युलेट करना)। एक बार जब आप खिड़की के हैंडल प्राप्त कर लेते हैं, तो आप विंडो पर ऑब्जेक्ट्स की सूची प्राप्त करने के लिए आसानी से अपने नियंत्रण एरे (और इसके सबक्लास नियंत्रण एरे) को पार कर सकते हैं, लेकिन एनवीओ इंस्टेंस वेरिएबल्स को संभालने जैसी चीजें समस्याग्रस्त हो सकती हैं।

मैं इस विचार की प्रशंसा करता हूं। काश मैं बेहतर समाचार था (शायद रेक्स के अलावा खुद को करने के सिरदर्द के बिना आपकी समस्या का समाधान हो सकता है)। अब मैं और भी आगे देख रहा हूं कि कौन सा ईरान जारी हो सकता है! मुस्कराहट

गुड लक,

टेरी।

3

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

जासूस की तरह उपकरण: मेरा समाधान दो भागों से बना है।

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

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

मुझे संदेह है कि बुनियादी ढांचे के हिस्से को कुछ बाहरी चीज़ों के साथ प्रतिस्थापित किया जा सकता है, क्योंकि मैंने ऐसा टूल देखा है जो ऐसा करने में सक्षम है (विजुअल विशेषज्ञ, क्यूटीपी)। हालांकि, मेरे पास आगे की जांच करने का समय नहीं था, और यह समाधान विकसित करना अपेक्षाकृत आसान था।

मुझे कहना है, आपका प्रश्न एक आश्चर्यजनक समय पर आता है। this recent question of mine देखें। यदि आप मेरे द्वारा बनाए गए टूल में रूचि रखते हैं, तो मुझे एक टिप्पणी छोड़ दें।