启动Excel并从另一个程序加载特定的插件

我想在C#程序中运行(打开)Excel,并同时加载一个特定的加载项。 这可能吗? C#程序应该是一种启动程序EXE,它打开了一个自己特定的Excel解决scheme(使用由VSTO开发的特定的Addin(DLL))。 外接程序(function区)从头开始,所有其他内置选项卡都隐藏起来。 只有当Excel由启动程序EXE启动时才能加载加载项。

我知道,Excel可以例如开始

ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "EXCEL.EXE"; Process.Start(startInfo); 

但有没有可能说新的Excel进程,哪个插件应该加载?

我将检查从该版本的Office使用互操作。

这里是关于命名空间的一些信息,你应该能够从扩展名中得到DLL,或者它们位于你的office文件夹中。 至于运行一个特定的插件可能会在互操作库中的东西,可以helo,但我不知道。

http://msdn.microsoft.com/en-us/library/ms262200(v=office.11​​).aspx

您可以通过黑客registry来实现这一点。 在启动excel转到registry之前,你要在启动时加载(3)。 在你的启动器启动excel过程后,重置这些加载器加载行为来卸载(0),这样当有人启动excel时,这个插件就不会出现。 你的启动器代码看起来有点像这样

 // Code to change load behavior of addins to Load ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "EXCEL.EXE"; Process.Start(startInfo); // Code to change load behavior of addins to UnLoad