2012-03-08 12 views
7

से हस्ताक्षरित किया गया है मुझे लगता है कि प्रोग्राम के रूप में एक VB.Net/C# आवेदन किया है:कैसे आप प्रोग्राम बता सकते हैं कि एक शब्द मैक्रो VB.Net/C#

  1. एक आरटीएफ दस्तावेज़
  2. ओपन यह माइक्रोसॉफ्ट में बनाता है

कोड::

Protected mobjWordApp As Word.Application = Nothing 
' 
' lots more code snipped for clarity 
' 
With mobjWordApp.Dialogs.Item(Word.WdWordDialog.wdDialogToolsMacro) 
    .Name = MacroName 
    .Run = True 
    .Execute() 
End With 
012 पद
  • एक शब्द मैक्रो है कि इस तरह कोड वर्ड टेम्पलेट में मौजूद है चलाता है

    इसने वर्षों से खुशी से काम किया है।

    अब मेरे पास एक नई आवश्यकता है; मेरा आवेदन केवल सिग्नल वर्ड मैक्रोज़ चलाने के लिए आवश्यक है।

    यह काफी आसान वर्ड यूजर इंटरफेस में क्या करना है इस प्रकार है:

    File > Options > Trust center > Macro Settings 
    Select "Disable all macros except digitally signed macros" 
    

    Trust Center

    इस बार सेट कर दिया जाता है, अगर व्यक्ति वर्ड चल मैक्रो संवाद प्रदर्शित करता है, किसी भी अहस्ताक्षरित (या हस्ताक्षरित लेकिन अविश्वसनीय) मैक्रोज़ सूचीबद्ध नहीं हैं। यह वही है जैसा मैं उम्मीद करता हूं।

    हालांकि, मेरा वीबी.Net कोड, जो वर्ड एप्लिकेशन खोल रहा है, इसे बाईपास कर सकता है।

    With mobjWordApp.Dialogs.Item(Word.WdWordDialog.wdDialogToolsMacro) 
        .Name = MacroName 
        .Run = True 
        .Execute() 
    End With 
    

    क्या मैं पता करने की जरूरत है:: जब मैं इस कोड को चलाने के लिए यह एक अहस्ताक्षरित मैक्रो चलेगा

    वहाँ अगर एक मैक्रो मैंने पहले हस्ताक्षरित किया गया है (और विश्वसनीय) मेरे कोड की पहचान करने के लिए एक रास्ता है चलाओ?

  • +0

    शब्द दस्तावेज़ के किन संस्करणों? डॉक्टर या डॉक्क्स? –

    +0

    गडे मीका, हम Word 2007 (32-बिट) चला रहे हैं .dotm और .doc फ़ाइलों के साथ –

    उत्तर

    4
    Dim ap As New Application() 
    Dim doc As Document = ap.Documents.Open("C:\Doc1.rtf", [ReadOnly] := False, Visible :=  False) 
    doc.Activate() 
    'returns a boolean on if the VBA is signed 
    doc.VBASigned 
    

    MSDN Link

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

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