2010-07-27 3 views
2

Je travaille sur un programme de gestion de documents. Je veux ouvrir un document Word avec le clic d'un bouton et selon les autorisations à l'utilisateur qui s'est connecté se verront accorder certaines autorisations (comme en lecture seule, éditables).Autorisation de document Word à travers C#

J'ai essayé avec ce code:

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; 

Ce code ouvre le document, mais comme je l'ai mis la lecture seule vraie, elle doit ouvrir le document en mode lecture seule. Lorsque le document est ouvert dans Word 2003, il est modifiable, tandis que lorsqu'il est ouvert dans Word 2010, il est en lecture seule.

En outre, je voudrais savoir si cela vaut la peine de désactiver toutes les barres d'outils de Word et de créer les miennes avec les boutons que je veux. Je veux donner seulement la fonctionnalité que je veux - comme je veux désactiver la fonctionnalité SaveAs.

Répondre

0

Que diriez-vous quelque chose comme le code suivant. En spécifiant proc.StartInfo.UseShellExecute = true, Windows lancera automatiquement l'application associée au document Word pour l'utilisateur actuel.

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)); 
      } 
     } 

    } 
} 
Questions connexes