टिप 1: खिड़की के संचालन को कैसे प्राप्त करें

टिप 1: खिड़की के संचालन को कैसे प्राप्त करें


विंडोज़ में यूजर इंटरफेस की अवधारणा को अवधारणा पर बनाया गया है खिड़कियां। डायलॉग, बटन, कंट्रोल पैनल, सूचियां - यह सब खिड़कियां। इसलिए, अपने स्वयं के या किसी अन्य व्यक्ति के इंटरफेस के किसी भी तत्व के साथ किसी भी कार्य को करने के लिए, आपको प्राप्त करना होगा वर्णनकर्ता खिड़कियां.



खिड़की के संचालन को कैसे प्राप्त करें


आपको आवश्यकता होगी



  • - प्लेटफ़ॉर्म एसडीके पैकेज;
  • - संकलक


अनुदेश


1


मिलना वर्णनकर्ता खिड़कियां, इसे बनाने एपीआई कार्यों के लिए कॉल करें, CreateWindow या CreateWindowEx, या फ्रेमवर्क या पुस्तकालय के वर्गों के उचित आवरण विधि (आवश्यक ऑब्जेक्ट्स पर) को कॉल करें, जो कि काम करने की कार्यक्षमता को समझाते हैं खिड़कियांया नियंत्रण। CreateWindow और CreateWindowEx फ़ंक्शन सीधे वापस आते हैं वर्णनकर्ता खिड़कियां अगर यह सफलतापूर्वक बनाया गया है वे कॉल विफल जब वापसी Null मूल्य है। त्रुटि कोड के कारण GetLastError एपीआई-कार्यों का उपयोग कर पूछे जा सकता है। // MSDN: प्रोटोटाइप और CreateWindow और CreateWindowEx कार्यों के मापदंडों का विस्तृत विवरण लिंक पर http://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx और http क्लिक करें .microsoft.com / en-us / पुस्तकालय / विंडोज़ / डेस्कटॉप / ms632680% 28v = vs.85% 29.aspx है.अगर विभिन्न व्यवस्थाएं वर्ग ऑब्जेक्ट निर्माण विंडोज़ ऑपरेटिंग सिस्टम का उपयोग हो सकता है या तो स्पष्ट रूप (फोन करके) और परोक्ष (आरए II क्रियान्वयन रणनीति)। इसलिये वर्णनकर्ता खिड़कियां तैयार प्रारंभिक वस्तु पर प्राप्त करना बेहतर होता है लौटने वाले वर्गों के तरीकों के बारे में वर्णनकर्ता खिड़कियां, ऑब्जेक्ट द्वारा समझाया गया है, आप संबंधित फ्रेमवर्क के दस्तावेज़ीकरण में पता लगा सकते हैं। उदाहरण के लिए, एमएफसी में, इसी तरह की विधि क्लास CWnd का GetSafeHwnd है


2


मिलना वर्णनकर्ता खिड़कियां इसे खोजकर FindWindow और FindWindowEx API फ़ंक्शंस या लागू फ्रेमवर्क के क्लासेस ऑब्जेक्ट के संबंधित आवरण विधियों का उपयोग करें। FindWindow फ़ंक्शन का रिटर्न वर्णनकर्ता खिड़कियां शीर्ष स्तर अगर विफलता पर पाया जाता है या नल। खोज वर्ग के नाम और शीर्षक से किया जाता है खिड़कियां। पैरामीटर और फ़ंक्शन के पहलुओं का विवरणलिंक http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx .Semantika काम समारोह FindWindow FindWindowEx फर्क सिर्फ इतना है कि यह खोज का उत्पादन के साथ समान है बच्चे खिड़कियां। FindWindowEx प्रलेखन के लिए http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx लिंक द्वारा दिए गए।


3


खोज वर्णनकर्ता खिड़कियां उनके सेटों की गणना की प्रक्रिया में का प्रयोग करें एपीआई-कार्यों EnumWindows, EnumChildWindows, EnumThreadWindows तरीकों या वर्गों वस्तुओं का इस्तेमाल किया freymvorka.Funktsii EnumWindows सूची और EnumChildWindows की खिड़कियां शीर्ष स्तर और बच्चे खिड़कियां क्रमशः। EnumThreadWindows सभी गैर-बच्चे की गणना करता है खिड़कियां निर्दिष्ट धारा का इन कार्यों में से प्रत्येक को कॉलबैक प्रक्रिया में एक संकेतक को पारित करना होगा, जो काम की प्रक्रिया में स्थानांतरित किया जाएगा वर्णनकर्ताकी खिड़कियों को मापदंडों के रूप में पाया जाता है। कॉलबैक प्रक्रिया में खिड़कियों के गुणों को प्राप्त करने और विश्लेषण करने से, गणना फ़ंक्शन के संयोजन से, आप पा सकते हैं वर्णनकर्ता आवश्यक खिड़कियां। वर्णित फ़ंक्शंस के लिए दस्तावेज इन्हें दिया जाता हैलिंक: - EnumWindows: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497%28v=vs.85%29.aspx; - EnumChildWindows: http://msdn.microsoft.com/ en-us / पुस्तकालय / विंडोज़ / डेस्कटॉप / ms633494% 28v = vs.85% 29.aspx; - EnumThreadWindows: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633495%28v=vs .85% 29.aspx।


4


मिलना वर्णनकर्ता खिड़कियां ज्ञात निर्देशांक से फ़ंक्शन WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx वापसी वर्णनकर्ताWindowsFromPoint फ़ंक्शन का उपयोग करना सबसे आसान है, लेकिन वापस नहीं आता है वर्णनकर्ताछिपे हुए और अक्षम खिड़कियां अपने आवेदन प्रलेखन पर कड़ी है http://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx .Funktsii ChildWindowFromPoint और ChildWindowFromPointEx लगता है वर्णनकर्तानिर्दिष्ट माता पिता के बच्चे खिड़कियां, एक दिए गए बिंदु से संबंधित इस प्रकार ChildWindowFromPointEx व्यवहार लचीलेपन एक अतिरिक्त पैरामीटर का उपयोग कर नियंत्रित किया जा सकता। इन कार्यों के लिए प्रलेखन लिंक पर प्रदान की जाती है: - ChildWindowFromPoint: http://msdn.microsoft.com/en-us/library/windows/desktop/ms632676%28v=vs.85%29.aspx; - ChildWindowFromPointEx: http: // msdn.microsoft.com/en-us/library/windows/desktop/ms632677%28v=vs.85%29.aspx।



टिप 2: कैसे हैंडल को पहचानना


वर्णनकर्ता खिड़की, या संभाल विंडो, - विशिष्टएक पहचानकर्ता जो ऑपरेटिंग सिस्टम द्वारा विंडो के निर्माण के दौरान जारी किया जाता है। यदि आप किसी कारण से किसी विंडो के सिस्टम डिस्क्रिप्टर को जानने की आवश्यकता होती है (उदाहरण के लिए, कोई एप्लिकेशन लिखते समय), यह HWND प्रोग्राम का उपयोग करके किया जा सकता है



कैसे हैंडल पहचानने के लिए


आपको आवश्यकता होगी



  • - एचडब्ल्यूडब्ल्यूडी कार्यक्रम


अनुदेश


1


इस एप्लिकेशन को खोज इंजन के माध्यम से खोजेंइंटरनेट पर और अपने कंप्यूटर पर डाउनलोड करें यह प्रोग्राम प्रोग्रामर पावेल लेनिस्कोव द्वारा विकसित एक निःशुल्क एप्लिकेशन है। प्रोग्राम के साथ संग्रह को खोलने से पहले, एंटीवायरस सॉफ़्टवेयर के साथ डाउनलोड किए गए डेटा की जांच करें। कार्यक्रम के साथ संग्रह खोलें WHD.exe फ़ाइल पर दो बार क्लिक करके उपयोगिता को चलाएं। प्रोग्राम विंडो में एक सरल इंटरफ़ेस है: नियंत्रण और विवरण देने वाले एक क्षेत्र। यदि आपके पास कोई पुरालेख नहीं है, तो इंटरनेट से एक कार्यक्रम विन रार नामक एक प्रोग्राम डाउनलोड करें


2


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


3


"ओके" बटन पर क्लिक करें और नीचे दिया गया क्षेत्र दिखाई देगा।खोज आईडी प्रोग्राम विंडो को बंद करने के लिए, ऊपरी दाएं कोने में क्रॉस पर क्लिक करें। प्रोग्राम डेवलपर से संपर्क करने के लिए, http://vokinsel.dviger.com पर जाएं। आप वास्तविक समय में सलाह प्राप्त करने में सक्षम होंगे, साथ ही साथ सॉफ्टवेयर के नए संस्करणों की उपलब्धता के बारे में जानेंगे।


4


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




युक्ति 3: संभाल कैसे लें


एप्लिकेशन प्रोग्रामिंग इंटरफ़ेसविंडोज परिवार के ऑपरेटिंग सिस्टम फ़ंक्शन के एक सेट द्वारा प्रतिनिधित्व किया जाता है जब उन्हें कहा जाता है, विभिन्न ऑब्जेक्ट (फाइल, प्रोसेस, थ्रेड्स, सिंक्रनाइज़ेशन ऑब्जेक्ट इत्यादि) बनाई जा सकती हैं। इन वस्तुओं तक काफी सार और एकीकृत पहुंच सुनिश्चित करने के लिए उनकी पहचान डिस्क्रिप्टर के जरिए की जाती है - "अवैयक्तिक" संख्यात्मक मान



हैंडल कैसे प्राप्त करें


आपको आवश्यकता होगी



  • - प्रोग्रामिंग भाषा से अनुवादक जो कि विंडोज़ एपीआई के उपयोग की अनुमति देता है;
  • - शायद विंडोज प्लेटफॉर्म एसडीके


अनुदेश


1


विंडो डिस्क्रिप्टर प्राप्त करें यह कई तरह से किया जा सकता है विशिष्ट लक्ष्य अंतिम लक्ष्य पर निर्भर करता है। एक विंडो बनाने के लिए CreateWindow या CreateWindowEx API का उपयोग करें। विफलता के मामले में अगर वे सफल और नाउल पर एक वर्णनकर्ता वापस करते हैं, क्रमशः FindWindow और FindWindowEx फ़ंक्शंस का उपयोग करके विभिन्न मापदंडों के साथ शीर्ष-स्तरीय विंडो और बाल विंडो की खोज करें। यदि खोज सफल हो जाती है, तो खिड़की विवरणक प्राप्त होगा। विंडो के कार्यों को EnumWindows, EnumChildWindows, EnumThreadWindows के साथ बताएं। खिड़कियों के डिस्क्रिप्टर कॉलबैक फ़ंक्शन के एक पैरामीटर के रूप में दिए जाएंगे। स्क्रीन पर एक निश्चित स्थिति में स्थित विंडो के हैंडल को ढूंढें। फ़ंक्शन में से किसी एक को कॉल करें: WindowFromPoint, ChildWindowFromPoint या ChildWindowFromPointEx।


2


प्रक्रिया वर्णनकर्ता प्राप्त करें एपीआई-समारोह CreateProcess, CreateProcessAsUser, CreateProcessWithTokenW या CreateProcessWithLogonW को फोन करके एक नई प्रक्रिया बनाएँ। वे सभी क्षेत्र hProcess PROCESS_INFORMATION प्रकार संरचना में एक नई प्रक्रिया के लिए एक संभाल लौटने के लिए, एक सूचक उन्हें प्रेषित किया जा करने के लिए अपने प्रसिद्ध पहचानकर्ता के अंतिम parametrom.Naydite प्रक्रिया संभाल है जो करने के लिए। फोन OpenProcess का प्रयोग करें। चल रहे सभी प्रक्रियाओं की आईडी उदाहरण के लिए प्राप्त किया जा सकता है, CreateToolhelp32Snapshot कार्यों का उपयोग कर, और मौजूदा प्रक्रिया के Process32First Process32Next लाइब्रेरी उपकरण Help.Izvlekite छद्म वर्णनकर्ता, समारोह GetCurrentProcess का उपयोग कर।


3


धागा डिस्क्रिप्टर प्राप्त करें CreateThread और CreateRemoteThread फ़ंक्शंस अपने स्वयं के और अन्य प्रक्रियाओं में क्रमशः थ्रेड बनाते हैं, उनके विवरणक लौटते हैं। अपने पहचानकर्ता का उपयोग करते हुए एक मौजूदा स्ट्रीम को खोलने के लिए, संबंधित वर्णलेखक प्राप्त करने के लिए, फ़ंक्शन ओपनथैड के माध्यम से संभव है वर्तमान प्रवाह के छद्म-डिस्क्रिप्टर को तब प्राप्त किया जाता है जब GetCurrentThread कहा जाता है।


4


फ़ाइलों, निर्देशिकाओं, भौतिक के लिए वर्णनकर्ताडिस्क, वॉल्यूम, कंसोल, संचार संसाधन (I / O पोर्ट), मेल स्लॉट और नामित पाइप एक ही समारोह कॉल करके प्राप्त किया जा सकता है - CreateFile


5


फाइल डिस्प्ले ऑब्जेक्ट्स के लिए फाइल डिस्क्रिप्टर्स को फ़ॉरफाइल मैपिंग और ओपनफाइल मैपिंग फोन करते हुए लौटाया जाता है।


6


CreateMutex, CreateSemaphore और फ़ंक्शन के लिएCreateEvent बनाया गया है, और OpenMutex, OpenSemaphore, और OpenEvent फ़ंक्शंस मौजूदा सिंक्रनाइज़ेशन ऑब्जेक्ट्स खोलता है (म्यूटेक्सस, सेमाफोर्स और इवेंट्स)। वे सभी विवरणदाता वापस लौटते हैं


7


सभी जीडीआई ऑब्जेक्ट्स का हेरफेर (जैसेडिवाइस संदर्भ, फोंट, ब्रश, पेंसिल, हार्डवेयर आश्रित और स्वतंत्र रास्टर्स, डीआईबी अनुभाग, आदि) उनके डिस्क्रिप्टर के माध्यम से निर्मित होते हैं। जीडीआई ऑब्जेक्ट बनाने के लिए कार्य कई हैं और उनके बारे में जानकारी प्राप्त करने के लिए यह आवश्यक है कि एमएसडीएन के संबंधित खंड का संदर्भ लें।


8


एक प्रक्रिया में प्राप्त एक विवरणकर्ता, जैसा किनियम, दूसरे में इस्तेमाल नहीं किया जा सकता हालांकि, कुछ मामलों में यह प्राथमिक वस्तु के अनुरूप एक डिस्क्रिप्टर-डुप्लिकेट प्राप्त करना संभव है। डुप्लिकेट डिस्क्रिप्टर को लागू करने के लिए डुप्लिकेटहैंडल एपीआई फ़ंक्शन को कॉल करें। इसका उपयोग, उदाहरण के लिए, कई प्रक्रियाओं से अनाम तुल्यकालन वस्तुओं या चैनलों के साथ-साथ उपयोग को लागू करने के लिए किया जा सकता है।