私は c# .NET を使用して、MSOFFICE com 相互運用 DLL を使用して MS com を呼び出しています。
Office com 相互運用がスレッド セーフではないことはわかっています。ただし、別のユーザーにとってはスレッドセーフでしょうか? Windows でのプロセスの分離については、これが一般的なこのような共有コンポーネントによる制限なのか、それとも Office com の記述が不十分なだけなのかを知るには十分ではありません。たとえば、PPT を呼び出してビデオを出力すると、実際に PPT が開き、ビデオが AVI にレンダリングされます。同じログイン ユーザー アカウントを使用して衝突することはわかっていますが、別のログイン システム ユーザーがプロセスを呼び出しても問題ないでしょうか?
既に別のアプリをホストしているマシンでテスト環境をステージングしたいのでお願いします。プロセスの衝突が発生することが保証されていないため、IT を理論的にテストするのは困難ですが、発生する可能性があります。
美しく機能し、数週間から数か月間実行されます。
呼び出しの例:
using Microsoft.Office.Core;
using Microsoft.Office.Interop.PowerPoint;
Application app = new Application();
Presentations presList = app.Presentations;
Presentation pres = null;
// ... do some stuff ...
// then kill it.
private static bool KillPowerPoint()
{
Process[] prs = Process.GetProcesses();
var killed = false;
// do a bunch of stuff to kill the process ...
return killed;
}