2011-06-10 4 views
6

पर एक शब्द फ़ाइल नहीं खुलती है मैं फ़ाइलों को खोलने के लिए ShellExecute का उपयोग करता हूं। 2000+ उपयोगकर्ताओं के बीच एक मशीन पर मैं दस्तावेज़ फ़ाइलों को नहीं खोल सकता। वर्डपैड के साथ डॉक्क्स खोले गए हैं।ShellExecute को 'ओपन' पास करने से एक विशिष्ट मशीन

वर्ड 2010 सही ढंग से स्थापित है और एक शब्द फ़ाइल पर एक्सप्लोरर डबल क्लिक्सिंग से शब्द सही तरीके से खुलता है, इसके अलावा दस्तावेज़ एक्सप्लोरर में सही आइकन के साथ दिखा रहा है। ध्यान दें कि अन्य सभी फाइलें ठीक काम करती हैं (जैसे xls, xlsx, pdf, ...)

क्या किसी को पता है क्यों? मैं checekd और "फाइलों को खोलने के लिए इस एप्लिकेशन का उपयोग करें" यह चेक किया गया है।

कोड में मैं त्रुटि की जाँच करें और मुझे पता है कि त्रुटि संदेश

SE_ERR_ASSOCINCOMPLETE या SE_ERR_NOASSOC

है (क्योंकि दोनों ही मामलों में मैं एक त्रुटि "कोई appliaction फ़ाइल के प्रकार से संबंधित है जो" दिखाने के लिए, इसलिए मुझे नहीं पता कि कौन सी त्रुटियां हैं, मैंने इसे देखने के लिए ग्राहक अंत में डीबग किया, लेकिन मुझे नहीं लगता कि यह इस मामले में इतना महत्वपूर्ण है)।

क्या किसी को कोई विचार है? यह एक लगभग ताजा विंडोज 7 मशीन है यह मेरे लिए लग रहा है कुछ की तरह समस्या इस मशीन के लिए खिड़कियों रजिस्ट्री में नहीं है,:

ShellExecute(0, 'open', PWideChar(MyFilePath), '', '', SW_SHOWNORMAL); 

ध्यान दें: यह है कि मैं क्या फ़ाइल खोलने के लिए इस्तेमाल करते हैं। क्यों इस एपीआई अपेक्षा के अन्वेषक से यह करता है काम नहीं करता है: यह वास्तव में WinAPI पर एक सवाल यह है: जो बंद के रूप में विषय इस सवाल को बंद करने के लिए मतदान किया गया है के लिए

नोट? तो यह विषय बंद नहीं है, विशेष रूप से winapi टैग में है।

+0

आपके संपादन के संबंध में, winapi केवल टैग में है क्योंकि मैंने उन्हें संपादित किया और अनुपयोगी डेल्फी टैग से छुटकारा पा लिया। लेकिन मुझे लगता है कि यह कोडिंग मुद्दे की तुलना में विशेष मशीन के साथ शायद एक मुद्दा है, इसलिए ऑफ-विषय, सुपरसियर करीबी वोटों पर जाएं। –

+0

@ डेविड, हाँ, मुझे पता है कि आप उलझन में हैं, लेकिन यह कहना आसान था कि "विशेष रूप से winapi टैग में है" तो "विशेष रूप से winapi टैग में है, भले ही मैंने मूल रूप से इसे नहीं जोड़ा और यह डेविड द्वारा एक संपादन द्वारा किया गया था Heffeman "। :) – LaBracca

उत्तर

5

यह सिर्फ एक अनुमान है, लेकिन मुझे संदेह है कि एक्सप्लोरर न्यूल का उपयोग कर रहा है जहां आपके पास "खुला" है। यदि उपयोगकर्ता के पंजीकृत फ़ाइल एसोसिएशन में कुछ भी अस्वस्थ है तो यह संक्षेप में अलग व्यवहार को ट्रिगर कर सकता है। उदाहरण के लिए, यदि "ओपन" के अलावा कोई डिफ़ॉल्ट क्रिया है।

+0

क्या यह आमतौर पर दूसरी तरफ नहीं है? –

+1

@ डेविड: 'न्यूल' निर्दिष्ट करने से 'शैलएक्सक्यूट()' को डिफ़ॉल्ट पंजीकृत क्रिया का आह्वान करने के लिए कहा जाता है, 'अगर कोई अस्तित्व में नहीं है' 'वापस आ रहा है, और यदि कोई खुला नहीं है तो पहले पाया गया है। अधिकांश विरासत कोड हार्ड-कोडेड 'ओपन' 'का उपयोग करते थे क्योंकि यह सामान्य डिफ़ॉल्ट क्रिया होता था। यह आजकल सामान्य नहीं है, इसलिए अब 'NULL' का उपयोग करना बेहतर है और ओएस को यह तय करने दें कि कौन सी क्रिया का आह्वान करना है। –

+0

ऐसा लगता है कि वर्ड ने ओपन क्रिया –

संबंधित मुद्दे