मैं एक अलग प्रक्रिया में खिड़की पर भेजे जा रहे संदेशों को रोकना चाहता हूं। इसे करने का बेहतरीन तरीका क्या है? जब मैं WH_GETMESSAGE हुक का उपयोग करता हूं तो मैं संदेश नहीं देख सकता, और मुझे यकीन नहीं है कि क्या मैं प्रक्रियाओं में उप-वर्ग कर सकता हूं? कोई भी सहायताकाफी प्रशंसनीय होगी।मैं विंडो में भेजे जाने वाले संदेशों को कैसे रोकूं?
उत्तर
आपको उन प्रक्रियाओं में अपना स्वयं का कोड इंजेक्ट करने की आवश्यकता है, जिनके बारे में आप संदेश को अवरुद्ध करना चाहते हैं। सौभाग्य से, SetWindowsHookEx()
यह काफी आसान बनाता है, हालांकि आपको पहले कुछ परेशानी हो सकती है अगर आपने इसे अभी तक प्रक्रिया में शामिल करने के लिए उपयोग किया है।
मैं इस विषय पर दो उत्कृष्ट लेख की सिफारिश कर सकते हैं:
- यूसुफ Newcomber के Hooks and DLLs
- रॉबर्ट कस्टर के Three Ways to Inject Your Code into Another Process
यदि WH_GETMESSAGE
पोस्ट किए गए संदेश को यह नहीं देखा जाएगा तो उसे नहीं देखा जाएगा। आपको WH_CALLWNDPROC
की आवश्यकता है। यदि आप प्रक्रियाओं में काम कर रहे हैं तो आपको एक डीएलएल में सिस्टम-व्यापी हुक की आवश्यकता होगी। आप उल्लेख नहीं करते कि आपने SetWindowsHookEx को कैसे बुलाया है, इसलिए मुझे नहीं पता कि आपकी हुकिंग विफल रही है क्योंकि यह वैश्विक नहीं था, या क्योंकि जिस संदेश को आप ढूंढ रहे थे वह भेजा गया था।
यदि आपने पहले सिस्टम-व्यापी हुक के साथ काम नहीं किया है, तो मेरे पास मेरी वेबसाइट here पर सिस्टम-व्यापी हुक का एक उदाहरण है। यह एक कीबोर्ड हुक है, लेकिन सिद्धांत वही है।
अगर मैं अनजाने में यहां बात कर रहा हूं तो मुझे रोकें - आपका प्रश्न इतना छोटा था कि मैं आपकी विशेषज्ञता स्तर का अनुमान नहीं लगा सकता। लेकिन हुक के साथ घूमते हुए कुछ अनुभव दर्शाता है ...
क्षमा करें, मुझे और अधिक जानकारी प्रदान करनी चाहिए थी। मुझे संदेशों को पढ़ने के लिए WH_CALLWNDPROC मिला, लेकिन मैं इसका उपयोग कर कतार से संदेश कैसे हटा सकता हूं? मैं कुछ संदेशों को लक्षित विंडो तक पहुंचने से रोकना चाहता हूं। –
फिर संदेश को CallNextHookEx –
पर पास न करें इससे कोई फर्क नहीं पड़ता कि मैं CallNextHookEx को कॉल करता हूं या नहीं, संदेश हमेशा लक्ष्य विंडो तक पहुंचता है। :( –
- 1. मैं अपने सत्यापन संदेशों से बचने वाले एमवीसी 3 एचटीएमएल को कैसे रोकूं?
- 2. जावा - विंडो विंडो को बंद करने से मैं विंडो क्लोजिंग को कैसे रोकूं
- 3. मैं टिंकर विंडो से तुरंत पाइथन प्रक्रिया को कैसे रोकूं?
- 4. भेजे गए संदेशों को संग्रहीत करने के लिए मैं म्यूट को कैसे बताऊं?
- 5. कोडिंग विंडो में त्रुटि संदेशों को कैसे निकालें?
- 6. मैं jQuery में "होवर" को कैसे रोकूं?
- 7. मैं लॉगऑन आउटपुट के लॉगर नाम को प्रदर्शित करने वाले विजुअल स्टूडियो आउटपुट विंडो को कैसे रोकूं?
- 8. मैं सीएसएस/जावास्क्रिप्ट त्रुटियों को दिखाने से समाधान विंडो में Resharper की त्रुटि को कैसे रोकूं?
- 9. मैं जावास्क्रिप्ट फ़ंक्शन को कैसे रोकूं, रोकूं या मारूं?
- 10. मैं अपनी प्रतिनिधि श्रृंखला को कचरा करने वाले अपवादों को कैसे रोकूं?
- 11. मैं सी # कंसोल एप्लिकेशन को सक्रिय विंडो के रूप में प्राथमिकता लेने से कैसे रोकूं?
- 12. कुकीज़ को AJAX अनुरोध पर भेजे जाने से रोकें
- 13. मैं पासवर्ड को सहेजने से कैसे रोकूं?
- 14. मैं अनुरोध को कैसे रोकूं एनीमेशन फ़्रेम
- 15. डब्ल्यूसीएफ - संदेश भेजे/प्राप्त किए गए संदेशों का निरीक्षण करें?
- 16. ब्रेकपॉइंट हिट होने पर विंडो को फ़ोकस करने से मैं विजुअल स्टूडियो डीबगर को कैसे रोकूं?
- 17. मैं PHP में सर्वर भेजे गए ईवेंट कैसे कार्यान्वित करूं?
- 18. सॉकेट.io: मैं सर्वर पर सभी आने वाले संदेशों को कैसे संभाल सकता हूं?
- 19. मैं प्रारूप/व्याख्या गणित निर्माण में पुनरावृत्ति को कैसे रोकूं?
- 20. मैं तत्काल या quickwatch में उपयोग किए जाने वाले नामस्थान का संदर्भ कैसे दूं?
- 21. मैं नकली को भेजे गए तर्क को कैसे प्राप्त करूं?
- 22. मैं पाइथन में ऑब्जेक्ट इंस्टेंस सृजन को कैसे रोकूं?
- 23. मैं एंड्रॉइड छविदृश्य में स्केलिंग को कैसे रोकूं?
- 24. मैं jquery में तेज़ स्क्रॉल को कैसे रोकूं?
- 25. मैं यसोड में स्थिर फाइलों के कैशिंग को कैसे रोकूं?
- 26. मैं वर्तमान में सभी मीडियाइलेमेंट प्लेयर्स को कैसे रोकूं?
- 27. मैं क्लोजर में जेटी सर्वर को कैसे रोकूं?
- 28. वर्तमान ब्राउज़र विंडो बंद होने पर क्रोम डेवलपर टूल को बंद करने से मैं कैसे रोकूं?
- 29. यूनिट परीक्षण के दौरान शुरू होने वाले विकास सर्वर को मैं कैसे रोकूं?
- 30. मैं अपने विभाजित बफर बदलने से Emacs को कैसे रोकूं?
आप एक प्रणाली विस्तृत संदेश हुक सेट करना होगा। [यहां एक ट्यूटोरियल है] (http://www.codeguru.com/cpp/w-p/system/misc/article.php/c5685)। –