पुन: प्रतीक्षाफॉरएक्सिट: इस ऑब्जेक्ट से कोई प्रक्रिया नहीं जुड़ी है। आपकी गलती यह है कि प्रक्रिया स्टार्ट की प्रक्रिया विधि का साझा तरीका है और एक नई प्रक्रिया ऑब्जेक्ट लौटा रहा है, क्योंकि quotStart (ByVal ProcessStartInfo) अभी के लिए आप हैं: 1. बिना किसी स्टार्टअप जानकारी (नई के रूप में मंद WinZip) के बिना नई प्रक्रिया बनाना। 2. एसआई स्टार्टअपइनफ़ोस्ट ऑब्जेक्ट (WinZip. Start (एसआई)) के साथ एक नई प्रक्रिया शुरू कर रहा है प्रक्रिया की वस्तु को कुछ भी नहीं बनाया जाता है। WaitForExit विधि कॉलिंग WinZip ऑब्जेक्ट का वास्तव में खाली है (WinZip. WaitForExit ()), जाहिर है एक अपवाद पैदा कर रहा है इसलिए, आपको अपना कोड रीमेक करना होगा: मंद आर्ग्स स्ट्रिंग के रूप में quot, एसआई के रूप में नई प्रक्रिया स्टार्टइनफ़ो (।) दीम विनज़िप प्रक्रिया की प्रक्रिया के रूप में। प्रारंभ (एसआई) आरईएम () WinZip. Start () WinZip. WaitForExit () मंद आर्ग्स, एसआई। दीम विनज़िप नई प्रक्रिया के रूप में () WinZip. StartInfo SI WinZip. start () WinZip. WaitForExit () मुझे उम्मीद है कि यह मदद करता है कोटटाबे ओल्सेनक्वाट lttolsen64xxxxxxxxxxxxgt। । समाचार: 2gNId4kFHA.3960xxxxxxxxxxxxxxxxxxxxxxx gt नीचे दिए गए कोड का उपयोग करते हुए, मुझे त्रुटि मिलती है। कोई प्रक्रिया gt के साथ जुड़ी है, इस ऑब्जेक्टिओप को WinZip. WaitForExit () विधि को कॉल करते समय। मैं जीटी के बाद संवाद पर quotBreakquot या quotContinuequot बटन पर क्लिक करता हूं, ऐप से बाहर निकलता है लेकिन gt तब आदेश खिड़की खोलती है और प्रक्रिया अपने आप ही चलती है Gt हो सकता है quotWaitForExitquot कॉल भी जल्द हो रहा हो gt gt निजी उप zipdirs (ByVal PCName के रूप में स्ट्रिंग) gt Dim WinZip के रूप में नई प्रणाली। डायग्नोस्टिक्स। प्रोसेस gt मंद आर्ग्स के रूप में स्ट्रिंग quot - Pru - EX quot amp lblFolder. Text amp quotquot amp पीसीएन amp amp gt. zip quotquotquot amp एपीपी amp; amp; amp; amp; amp; amp; amp; amp; एपीपी amp; amp;;;;;;;;; नई प्रक्रिया। जीडी डेवलपरडेक्स डेवलपर्सडेक्स के जरिए भेजे गए मेरे पास एक विंडो सर्विस है जिसमें इस कोड को शामिल किया गया है: इस कोड का उद्देश्य एक दस्तावेज पर एक आईफिल्टर निकालें चलाया जाता है, हम एक अलग प्रक्रिया का उपयोग करते हैं क्योंकि कुछ आईफिल्टर बेहद अजीब हैं। अब यह कोड विंडोज 7 और सर्वर 2008 R2 के बक्से पर पूरी तरह से ठीक चलता है लेकिन एक Windows Server 2003 पर WaitForExit तुरंत फेंकता है इस प्रक्रिया वस्तु अपवाद से कोई प्रक्रिया संबद्ध नहीं है। कोई समस्या बिना प्रक्रिया मौजूद है और इसके कार्य को पूर्ण करती है किसी को भी ये देखा जा सकता है कि क्यों कोई प्रतीक्षा करता है कि क्यों WaitForExit इस त्रुटि को धीमा कर देगा यदि मैं इस कोड को एक कंसोल ऐप में रखता हूं और इसे चलाने के साथ ही विंडवेस सर्वर 2003 बॉक्स पर ठीक काम करता है, तो यह एक विशिष्ट समस्या में दिखाई देगा एक Windows Server 2003 बॉक्स पर एक सेवा त्रुटि तब होती है जब आप प्रक्रिया में एक संभाल नहीं लेते हैं (इसलिए इसके लिए प्रतीक्षा नहीं कर सकते हैं) सुनिश्चित करें कि आप एक प्रक्रिया का पुन: उपयोग रोकने के लिए UseShellExecutefalse निर्दिष्ट कर रहे हैं। इसके अलावा, आप प्रत्यक्ष रूप से प्रक्रिया मॉनिटर की कोशिश कर सकते हैं और देखें कि यह क्या हो रहा है। ndash बेन फ़रवरी 2 12 12:51 पर बिन: I39ll UseShellExecutefalse एक प्रयास करें। Bitness एक अच्छा मुद्दा है Windows 2003 सर्वर एक 32 बिट सर्वर है, इसलिए दोनों सेवा और निष्पादन योग्य 32 बिट के रूप में चलाया जाता है। हालांकि विंडोज 7 ans 2008 R2 मशीन 64 बिट और 64 बिट के रूप में दोनों सेवा और निष्पादन योग्य रन हैं। तो यह हो सकता है कि यह अंतर OS संस्करण नहीं है। ndash AnthonyWJones 2 फ़रवरी 12:33 पर, जब प्रक्रिया शुरू करते हैं, सिस्टम। डायग्नोस्टिक्स। प्रोसेस क्लास के साथ, सिस्टम या तो CreateProcess या ShellExecuteEx Win32 फ़ंक्शन का उपयोग कर सकता है। CreateProcess का उपयोग करते समय केवल निष्पादन योग्य फ़ाइलों को शुरू किया जा सकता है। ShellExecuteEx का उपयोग करते समय शेल से स्टार्ट-रन कमांड का उपयोग करना शुरू कर सकते हैं। हालांकि ये प्रक्रिया शुरू करने के पूरी तरह से अलग तरीके हैं। ShellExecuteEx में शेल शामिल है, और उदाहरण के लिए, HKCRltprogidgtshellltverbgt रजिस्ट्री कुंजी के अंतर्गत संग्रहीत जानकारी का उपयोग करके, किसी दस्तावेज़ को खोलने के लिए Word या Excel का एक मौजूदा उदाहरण पुन: उपयोग कर सकते हैं इसमें उदाहरण के लिए DDE का उपयोग करने के लिए शामिल हो सकता है और उसके बाद एक मौजूदा Excel आवृत्ति को सक्रिय कर सकता है। ShellExecuteEx के SHELLEXECUTEINFO पर दस्तावेज़ीकरण देखें ध्यान दें कि ShellExecuteEx एक नई प्रक्रिया शुरू होने पर निर्भर करता है या नहीं hProcess लौटा सकता है। यह वह व्यवहार है जिसे आप देख रहे हैं। CreateProcess एक निम्न-स्तरीय फ़ंक्शन है और एक प्रक्रिया सीधे बनाता है, और बस समकक्ष तर्कों को पारित करता है। यह हमेशा प्रक्रिया संभाल देता है नोट: चूंकि आप एक निष्पादन योग्य फ़ाइल शुरू कर रहे हैं, यह थोड़ा आश्चर्यचकित है कि शेलएक्सेक्टेक्सएक्स द्वारा कोई भी एचप्रोकस वापस नहीं आया है। फिर भी, यदि आप यह सुनिश्चित करना चाहते हैं कि आप प्रोसेस संभाल लें, तो UseShellExecute false का उपयोग करना सही काम है।
No comments:
Post a Comment