Word Document Permission через C # - PullRequest
       7

Word Document Permission через C #

2 голосов
/ 27 июля 2010

Я работаю над программой управления документами. Я хочу открыть документ Word одним нажатием кнопки, и в соответствии с разрешениями пользователю, который вошел в систему, будут предоставлены определенные разрешения (например, только для чтения, редактируемые).

Я пробовал с этим кодом:

object missing = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Word.ApplicationClass doc = new Microsoft.Office.Interop.Word.ApplicationClass();       

object name = @"some.doc";
object read = true;
object t = true;
doc.Documents.Open(ref name, ref missing, ref read, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref t, ref missing, ref missing, ref missing, ref missing);

doc.Visible = true;

Этот код открывает документ, но, поскольку я установил истину только для чтения, он должен открывать документ в режиме только для чтения. Когда документ открывается в Word 2003, он доступен для редактирования, тогда как при открытии в Word 2010 он доступен только для чтения.

Кроме того, я хотел бы знать, стоит ли отключать все панели инструментов Word и создавать свои собственные с помощью кнопок, которые я хочу. Я хочу предоставить только те функции, которые мне нужны, например, я хочу отключить функцию SaveAs.

1 Ответ

0 голосов
/ 25 августа 2011

Как насчет чего-то вроде следующего кода. Указав proc.StartInfo.UseShellExecute = true , Windows автоматически запустит приложение, связанное с документом Word, для текущего пользователя.

namespace ConsoleApplication1
{
    using System.Diagnostics;
    using System.Windows.Forms;

    class Program
    {
        static void Main( string[] args )
        {
            var docName = @"some.doc";

            try
            {
                using ( var proc = new Process() )
                {
                    proc.StartInfo.UseShellExecute = true;

                    proc.StartInfo.FileName = docName;

                    proc.Start();
                }
            }
            catch ( System.Exception ex )
            {
                MessageBox.Show( string.Format( "Unable to display document '{0}': {1}", docName, ex.Message ) );
            }
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...