0

指定した場所でWordでドキュメントを開く機能があります。

static void OpenWordDocument(string fileName)
{
Type applicationType = Type.GetTypeFromProgID("Word.Application");
object applicationObject = Activator.CreateInstance(applicationType);

object documentsObject = applicationType.InvokeMember("Documents", System.Reflection.BindingFlags.GetProperty, null, applicationObject, null);
applicationType.InvokeMember("Visible", System.Reflection.BindingFlags.SetProperty, null, applicationObject, new object[] { true });

Type documentsType = documentsObject.GetType();
object documentObject = documentsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, documentsObject, new Object[] { fileName });
}

Office 2003では正常に動作しますが、Office 2010を使用しているシステムでドキュメントを開くと、ドキュメントがデータソースに接続できないようです。これを引き起こしている可能性がありますか?ドキュメントを開くときに、接続をブロックしている可能性のあるプロパティがありませんか?

4

2 に答える 2

1

次の記事で説明するように、Word 2010のレジストリエントリを挿入しましたか?

http://support.microsoft.com/kb/825765

つまり、2003年の正しいエントリがすでにある可能性があります。

于 2012-06-11T16:34:57.783 に答える
0

少しの回避策で解決しました〜

相互運用機能アセンブリを調べてWordのインスタンスを作成するのではなく、ドキュメントを開く.batファイルを実行するプロセスを作成しました:x

static void OpenWordDocument()
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = @"fileName.bat";
proc.Start();
}

これは理想的な解決策ではないので、他の解決策は素晴らしいでしょう!

于 2012-06-11T15:34:44.623 に答える