लटका हुआ है मेरे पास सी # में एक विंडोज सेवा है जो वीबीए इंटरऑप का उपयोग कर शब्द दस्तावेज़ (डॉक्टर और डॉक्क्स) से पाठ पढ़ती है। हालांकि कुछ दस्तावेजों पर यह ओपन विधि पर कॉल पर लटका हुआ प्रतीत होता है। ऐसा लगता है कि समस्या दस्तावेजों में सभी में मैक्रोज़ हैं। शब्द के स्थानीय स्तर पर स्थापित संस्करण मैक्रो विकलांग है और कोड मैं खोलने के लिए दस्तावेज़ इस प्रकार है का उपयोग करें:विंडोज सेवा में एक माइक्रोसॉफ्ट वर्ड दस्तावेज़ खोलना
using Word = Microsoft.Office.Interop.Word;
using OfficeCore = Microsoft.Office.Core;
Word.Application m_wordApp = new Word.ApplicationClass();
Word.Document m_wordDoc = null;
object TRUE_VALUE = true;
object FALSE_VALUE = false;
object MISSING_VALUE = System.Reflection.Missing.Value;
m_wordApp.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone; //will still fail with this line removed
m_wordApp.Visible = false; //will still fail with this line removed
m_wordApp.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable; //will still fail with this line removed
m_wordDoc = m_wordApp.Documents.Open(ref fileNameObject, ref FALSE_VALUE, ref TRUE_VALUE, ref FALSE_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref FALSE_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE);
मैं अपने विकासशील मशीन पर मैन्युअल रूप से इन दस्तावेजों पर कार्रवाई कर सकते हैं। क्या किसी को पता है कि यह क्यों हो रहा है या मेरे प्रश्न के बारे में कोई और सवाल है?
मैक्रोज़ के लिए उत्पादन मशीन प्रॉम्प्ट पर वर्ड का संस्करण, या चुपचाप उन्हें अक्षम करता है? –
क्या होता है जब आप कोड को नियमित कंसोल एप्लिकेशन में डालते हैं और उत्पादन मशीन पर निष्पादित करते हैं? क्या कुछ संवाद पॉप अप करते हैं? – Heinzi
एमके - शब्द चुपचाप मैक्रोज़ को निष्क्रिय करना चाहिए। मुझे वर्ड ट्रस्ट सेंटर में "अधिसूचना के बिना सभी मैक्रोज़ अक्षम करें" विकल्प से मेल खाता है और यह सेट करता है कि उपयोगकर्ता के लिए सेवा चलती है लेकिन इसने समस्या को ठीक नहीं किया है –