मैं कुछ नाम के साथ विंडो बंद करना चाहता हूं (उदाहरण के लिए, कोई कैलकुलेटर और आदि)। सी # में इसे कैसे करें? WinAPI कार्यों को आयात करें?विंडो को इसके नाम से कैसे बंद करें?
उत्तर
हां, आपको विंडोज एपीआई फ़ंक्शन आयात करना चाहिए: FindWindow()
, SendMessage()
; और WM_CLOSE
निरंतर।
Windows API कार्यों का मूल निवासी परिभाषाएँ:
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
/// <summary>
/// Find window by Caption only. Note you must pass IntPtr.Zero as the first parameter.
/// </summary>
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
const UInt32 WM_CLOSE = 0x0010;
क्लाइंट कोड:
IntPtr windowPtr = FindWindowByCaption(IntPtr.Zero, "Untitled - Notepad");
if (windowPtr == IntPtr.Zero)
{
Console.WriteLine("Window not found");
return;
}
SendMessage(windowPtr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
हां, यह नोटपैड के लिए ठीक काम करता है (मान लीजिए कि, विंडो शीर्षक बिल्कुल वही है जो आपने यहां दिया है, जो शायद यह अधिकतर समय नहीं है)। लेकिन यह उन अनुप्रयोगों के लिए काम नहीं करेगा जिनके पास एकाधिक शीर्ष-स्तरीय विंडो हैं, जब तक कि उन्हें विशेष रूप से एक शीर्ष-स्तरीय विंडो के समापन के बाद पूरे ऐप को बंद करने के लिए डिज़ाइन नहीं किया गया हो। अन्यथा, यह सुनिश्चित करने के लिए कि ऐप बंद हो जाए, आपको शीर्ष-स्तरीय विंडो के * प्रत्येक * को 'WM_CLOSE'' भेजने की आवश्यकता है। –
इसके अतिरिक्त, ऐप्स 'WM_CLOSE' को प्रतिसाद देने का विकल्प चुन सकते हैं, हालांकि उन्हें पसंद है। उदाहरण के लिए, कुछ प्रोग्राम वास्तव में बंद होने के बजाय, इस संदेश की प्राप्ति के बाद टास्कबार के अधिसूचना क्षेत्र में स्वयं को कम करने का विकल्प चुनते हैं। चूंकि आप इस बात को नियंत्रित नहीं कर सकते कि एप्लिकेशन संदेश को कैसे प्रतिक्रिया देता है, आपको इस विधि को व्यापक रूप से जांचने की आवश्यकता है और यह पता चलता है कि अज्ञात और अवांछित अनुप्रयोगों से निपटने के दौरान यह कितना संभावित रूप से नाजुक है। –
क्या यह सही है 'CloseWindow (windowPtr)'? –
आप अन्य प्रक्रियाओं से संबंधित विंडो बंद करने की कोशिश कर रहे हैं। यह ऐसा कुछ नहीं है जिसे आप मान सकते हैं भरोसेमंद होगा। एक बात के लिए, आपके पास उन खिड़कियों का स्वामित्व नहीं है, इसलिए आपके पास अन्य प्रक्रियाओं की खिड़कियों के साथ जाने और गड़बड़ करने के लिए वास्तव में कोई स्वचालित अधिकार नहीं है।
जैसा कि अन्य उत्तर बताता है, आप खिड़की पर WM_CLOSE भेजने का प्रयास कर सकते हैं, लेकिन यह चेतावनी के साथ आता है कि दूसरी प्रक्रिया वास्तव में इसका सम्मान करने के हकदार नहीं है। WM_CLOSE की प्रतिक्रिया स्वीकृति के लिए कुछ भी हो सकती है और पूरी तरह से अस्वीकृति के लिए एक साफ शट डाउन हो सकती है। बाद के मामले में, आपको वास्तव में कोई विकल्प नहीं मिला है। यह आपकी प्रक्रिया नहीं है। जैसा कि आपने देखा है, बीच में, किसी भी प्रकार की इंटरमीडिएट विंडो, डायलॉग बॉक्स इत्यादि हो सकती हैं, जिन्हें आप के साथ संघर्ष करना होगा।
तो आप यहां क्या हासिल करने की कोशिश कर रहे हैं? आप अन्य प्रक्रियाओं से संबंधित खिड़कियां बंद करने की कोशिश क्यों कर रहे हैं? यह स्पष्ट करने में मदद कर सकता है कि उद्देश्य क्या है।
- 1. रिटर्न विंडो हैंडल इसके नाम/शीर्षक
- 2. विंडो बंद करें घटना
- 3. सेलेनियम में पॉप अप विंडो को कैसे बंद करें?
- 4. जावा - विंडो विंडो को बंद करने से मैं विंडो क्लोजिंग को कैसे रोकूं
- 5. विंडो सामग्री के भीतर से केंडो विंडो को कैसे बंद करें?
- 6. EXTJS एक विंडो बंद करें
- 7. एचटीएमएल बटन बंद करें विंडो
- 8. कमांड विंडो में ब्लिंकिंग कर्सर को कैसे बंद करें?
- 9. विंडो क्लास नाम से विंडो हैंडल प्राप्त करें
- 10. बंद ब्राउज़र विंडो को कैसे रोकें?
- 11. स्प्लिट विंडो/आसन्न संपादक को कैसे बंद करें - एक्सकोड 4
- 12. बटन दबाकर टिंकर विंडो को कैसे बंद करें?
- 13. Jquery विंडो बंद होने से रोकें
- 14. बाल विंडो बंद करते समय पैरेंट विंडो रीफ्रेश करें
- 15. इसके अंदर फ़ंक्शन नाम प्राप्त करें
- 16. एक अलग प्रक्रिया से विंडो को बंद करने के लिए कैसे करें
- 17. JQuery इसके नाम
- 18. विंडो बंद घटना जावा
- 19. ग्रहण: एकाधिक विंडोज़ को कैसे बंद करें
- 20. वर्तमान ब्राउज़र विंडो बंद होने पर क्रोम डेवलपर टूल को बंद करने से मैं कैसे रोकूं?
- 21. विंडो बंद होने पर NSWindowController को रिलीज़ करें
- 22. प्रोग्रामिक रूप से बंद gtk विंडो
- 23. इंटेलिज संदेश विंडो को पॉप अप करना बंद करें
- 24. इसके शाब्दिक नाम
- 25. इसके नाम से वर्ग हो रही
- 26. फ़ाइल छोड़ते समय त्वरित फ़िक्स विंडो को स्वचालित रूप से कैसे बंद करें?
- 27. जावा में, स्ट्रिंग को इसके नाम से दिए गए गुण कैसे प्राप्त करें?
- 28. इसके नाम का उपयोग करके विधि कैसे कॉल करें?
- 29. बाल विंडो से पैरेंट विंडो को दोबारा लोड करें
- 30. विंडो को एनिमेट कैसे करें?
http://www.codeproject.com/Articles/22257/Find-and-Close-the-Window-using-Win-API ... google rox आप जानते हैं – m0s
संभावित डुप्लिकेट। http://stackoverflow.com/questions/116090/how-do-i-kill-a-process-using-vb-net-or-c – Lloyd
@ लॉयड: एक डुप्लिकेट नहीं, प्रक्रिया को मारना वही बात नहीं है एक खिड़की बंद करना –