Office Automation का उपयोग करते समय लटका कार्यालय प्रक्रिया के लिए जाँच करें

क्या Office Automation का उपयोग करते समय यह देखने के लिए कोई तरीका है कि कोई Microsoft Office प्रक्रिया (यानी Word, Excel) लटका है या नहीं? इसके अतिरिक्त, अगर प्रक्रिया लटका दी गई है, तो क्या इसे समाप्त करने का कोई तरीका है?

0
ro fr bn

3 उत्तर

मुझे यह कहते हुए शुरू करना है कि मैं सर्वर पर किसी सेवा में ऐसा करने की अनुशंसा नहीं करता हूं, लेकिन मैं सवालों के जवाब देने के लिए अपनी पूरी कोशिश करूंगा।

एक सेवा के रूप में चलना इसे साफ करना मुश्किल बनाता है। उदाहरण के लिए जो आप सेवा के रूप में चल रहे हैं उसके साथ एक लटका शब्द या एक्सेल को मारने से बचें। आप सेवा को मारने की स्थिति में हो सकते हैं। यदि आपकी स्थिति में शब्द या एक्सेल है तो आपकी सेवा बंद हो जाएगी।

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

यह निर्धारित करने का सबसे अच्छा तरीका है कि यह लटका हुआ है, ऐसा करना है कि वह ऐसा करने के लिए कहें जो इसे करने के लिए किया जाता है और परिणामों की जांच करता है। मुझे वास्तव में क्या करना है इसके बारे में और जानना होगा।

सफाई के लिए बैच फ़ाइल में उपयोग करने के लिए यहां कुछ आदेश दिए गए हैं (दोनों पथ में होना चाहिए):

  • एससी स्टॉप servicename - servicename नाम की सेवा बंद करता है
  • एससी शुरू servicename - servicename नाम की सेवा शुरू करता है
  • एससी क्वेरी servicename - servicename की स्थिति क्वेरी करता है

  • टास्ककिल/एफ/आईएम excel.exe - excel.exe के सभी उदाहरणों को समाप्त करता है

0
जोड़ा

मुझे कुछ साल पहले ऐसा करना याद है - इसलिए मैं 2007 XP या 2003 के दिनों में बात कर रहा हूं, 2007 नहीं।

स्पष्ट रूप से इन दिनों स्वचालन के लिए एक बेहतर समाधान System.IO.Packaging नामस्थान का उपयोग कर docx आदि का वर्णन करने वाले नए xml प्रारूप का उपयोग करना है।

उसके बाद, मैं ध्यान देता था कि जब भी एमएसडॉर्ड ने बाल्टी लात मार दी थी और पर्याप्त था, मशीन पर "डॉ वाटसन" नामक एक प्रक्रिया चल रही थी। यह मेरा पहला संकेत था कि शब्द फिसल गया था और गिर गया था। कभी-कभी मुझे एक से अधिक WINWORD.EXE दिखाई दे सकता है, लेकिन मेरा कोड अभी अच्छे डॉक्टर के लिए स्कैन करने के लिए उपयोग किया जाता है। एक बार मैंने देखा कि (कोड में), मैंने सभी WINWORD.EXE को अच्छे चिकित्सक को स्वयं संसाधित किया, और शब्द को यातना देने की प्रक्रिया को पुनरारंभ किया :-)

उम्मीद है कि आपको कुछ सुराग देता है कि क्या देखना है।

शुभकामनाएं,

रॉब जी

अनुलेख यदि आप सही नहीं आते हैं तो भी मैं अपने अभिलेखागार में कोड खोद सकता हूं!

0
जोड़ा

मैं बाद के आधे का जवाब दे सकता हूं; अगर आपके पास अपने कोड में एप्लिकेशन ऑब्जेक्ट का संदर्भ है, तो आप बस इसे "छोड़ें" पर कॉल कर सकते हैं:

private Microsoft.Office.Interop.Excel.Application _excel;
// ... do some stuff ...
_excel.Quit();

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

0
जोड़ा