启动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