मेरे पास एक बैकअप ऐप है जो बैकअप से पहले उपयोगकर्ता द्वारा परिभाषित चल रहे प्रोग्राम बंद कर देगा ताकि खुली डेटा फ़ाइलों को बंद किया जा सके और बैकअप से पहले फ़्लश किया जा सके। बैकअप पूरा होने के बाद यह सूची में कार्यक्रमों को पुनरारंभ करता है।TerminateProcess से एक दयालु तरीका?
मुझे कैप्शन और पोस्टमेसेज (ऐपहैंडल, WM_CLOSE, 0,0) का उपयोग करके विंडो हैंडल प्राप्त करने में कोई समस्या नहीं है; यह अधिकांश ऐप्स के लिए ठीक काम करता है, लेकिन अधिसूचना क्षेत्र (सिस्टम ट्रे)
वर्तमान में मैं टर्मिनेट प्रोसेस का उपयोग कर रहा हूं (और यह उन अधिसूचना क्षेत्र ऐप्स के लिए काम करता है, लेकिन यह फ़ाइलों को खुलता है क्योंकि विंडोज किसी भी बंद निर्देशों को बाईपास करता है और सिर्फ उन क्षुधा नीचे ज़ोर से बंद।
मैं लंबी और कठिन खोज की है और मैं अधिसूचना क्षेत्र क्षुधा को बंद करने के लिए एक अच्छा रास्ता नहीं मिल रहा। किसी को भी कृपया मदद कर सकते हैं?
धन्यवाद
'टर्मिनेट प्रोसेस' फाइलें खुली नहीं छोड़ती है। स्वामित्व की प्रक्रिया बंद होने पर सभी खुले हैंडल बंद हो जाते हैं। इसके अलावा, अगर आप खुले फाइलों का बैक अप लेना चाहते हैं, तो ओएस पहले से ही एक एपीआई प्रदान करता है: छाया प्रतिलिपि। –
@Rob: खुले फ़ाइलों को बैक-अप करने का प्रयास करने से आप एक असंगत स्थिति में रहते हुए स्नैपशॉट ले सकते हैं। – Gabe
@Gabe, अनपेक्षित रूप से प्रोग्राम बंद करने से भी बदतर नहीं ... – bdonlan