2017-05-15 6 views
0

C#でパスワード保護された.docxファイルを開く必要があるC#アプリケーション(WinFormsを使用してMicrosoft Visual Studio 2015を使用)を作成しています。ロードされ、そのファイルに(私は2016年のMicrosoft Wordを使用しています)プログラムでC#のスタンドアロンプ​​ログラムにパスワードを送信する方法

Process.Start("WINWORD.EXE", "filename.docx"); 

は、Wordを起動する。しかし、それは私が何もせずに開くので、私はまた、Wordにパスワードを送信したい:私はあなたが行うことができます知っています。私はそれが、この単純ではないと知っているが、これは今想像です:

public void submitPassword(string password) 
{ 
    Process.Start("WINWORD.EXE", "filename.docx" //something like this: System.Password.Sumbit("WINWORD.EXE", password)); 
} 
+0

Wordのコマンドラインスイッチ[提案する]のクイック検索(http://www.thewindowsclub.com/list-of-microsoft-word-2010-command-line-startup-switches:これはどのような作品です)パスワードのためのコマンドラインスイッチがありません –

+0

@MattBurlandしかし私はコマンドラインではなくC#を使用しています。 C#はプロセスにコマンドラインを使用しますか? –

+1

@JacobGarnerはい、プロセスはコマンドラインを使用するプログラマチックな方法です。 – Casey

答えて

1

私がAndrew Piliserによって提供された答えは、私を近くにしましたが、そこにはありませんでした。

using Word = Microsoft.Office.Interop.Word; 
    ... 
    public void submitPassword() 
    { 
     var wordApp = new Word.Application(); 
     wordApp.Visible = true; 
     wordApp.Documents.Open(FileName: @"filepath", PasswordDocument: "filepassword"); 
    } 
2

Microsoft Word Object Libraryと呼ばれるCOMタイプライブラリがあります。 Visual Studioでは、ソリューションエクスプローラから参照を追加できます。 [参照設定]を右クリックし、[参照の追加]をクリックし、[COM]タブに移動してWordを検索します。

パッケージMicrosoft.Office.Interop.Wordでは、Applicationインスタンスを作成し、パスワードを使用してドキュメントを開くように指示できます。

using Microsoft.Office.Interop.Word; 

... 

public void SubmitPassword(string password) 
{ 
    Application app = new Application(); 
    app.Documents.Open(FileName: @"filepath", PasswordDocument: password); 
} 
+0

これはほとんど動作します。しかし私は、私(Jacob)が編集のためにロックしているというメッセージを受け取ります。私はこれに何か悪いことをしましたか? –

+0

もう一度試しました。それは動作しますが、単語は始まりません。どうしたの? –

+0

ロックメッセージも出てきていますが、その理由はわかりません。 [the package](https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.aspx)のドキュメントを参照するか、Word OLEオートメーションを検索してみてください。 –

関連する問題