[C#] सी # खोलने वाले वर्ड दस्तावेज़ों की सूची प्राप्त करें


Answers

Question

वर्तमान में, एमएस वर्ड की सूची खोलने के लिए मैं इस कोड का उपयोग कर रहा हूं:

List<string> doc_list = new List<string>();
try
{
    Microsoft.Office.Interop.Word.Application WordObj;
    WordObj = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
    for (int i = 0; i < WordObj.Windows.Count; i++)
    {
        object idx = i + 1;
        Window WinObj = WordObj.Windows.get_Item(ref idx);
        doc_list.Add(WinObj.Document.FullName);
    }
}
catch
{
    // No documents opened
}

और यह सही ढंग से काम करता है यदि दस्तावेज "सीधे" खोले गए हैं, यानी उन पर डबल क्लिक करके। हालांकि, मैंने देखा कि अगर मैं सी # कोड से सीधे एमएस वर्ड दस्तावेज़ खोलता हूं, जैसे:

Microsoft.Office.Interop.Word.Application word_app = new Microsoft.Office.Interop.Word.Application();

object inputFile = selected_doc;    // "selected_doc" contains the document name
object confirmConversions = false;
object readOnly = false;
object visible = true;
object missing = Type.Missing;

Document doc = word_app.Documents.Open(
    ref inputFile, ref confirmConversions, ref readOnly, ref missing,
    ref missing, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref visible,
    ref missing, ref missing, ref missing, ref missing);

इस तरह से खोले गए किसी भी दस्तावेज़ को आंतिक कोड से नहीं मिला, लेकिन मुझे इसकी पहचान करने की आवश्यकता है। ऐसा क्यों नहीं मिला है? मैं कोड को कैसे संशोधित कर सकता हूं ताकि सी # से खोला गया दस्तावेज़ मिल जाएगा?