Я пытаюсь в моем приложении запустить Microsoft Excel с конкретными аргументами (т. Е. Дополнительными xla & xll).
На данный момент все работает нормально, потому что у всех моих пользователей установлен только Office11 (= 2003).
Моя компания собирается перейти на Windows 7 и Office 2010, и я логически не могу запустить Excel, поскольку .exe не находится в C:\Program Files:\Microsoft Office\Office11\EXCEL.EXE
Я провел быструю регистрациюреестр, чтобы увидеть, что я могу определенно проверить, какая версия в настоящее время установлена.Есть также много статей, объясняющих, как получить установленную на данный момент версию Office.
Однако я хотел бы знать, возможно ли найти что-либо (например, хороший раздел реестра), непосредственно дающее мне.путь exe для запуска Excel.
Используя мой текущий компьютер (Win XP x86, Office11), я могу найти его в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Excel\InstallRoot
Используя этот ключ, я могу, в основном, найтиОбходной путь, чтобы получить реальный путь.Проблема: такого ключа нет в реестре Windows 7 с установленным Office 2010 (= Office 14).
Ребята, знаете ли вы какой-нибудь способ запустить установленный Excel из C #?
FYI,Вот текущий раздел кода, запускающий Office11 с компьютера x64 / x86:
private void LaunchExcel(string arguments)
{
if (!Is64BitsOS())
{
Process process = new Process();
process.StartInfo.FileName = "excel";
process.StartInfo.Arguments = arguments;
process.Start();
}
else
{
Process process = new Process();
process.StartInfo.FileName = "c:/Program Files (x86)/Microsoft Office/Office11/excel.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.Arguments = arguments;
process.Start();
}
}
Есть идеи, как сделать этот код более общим?