我们正在开发一个与其他应用程序密切配合的WPF应用程序。现在,它正在使用Microsoft Excel。
我想在我们的WPF应用程序的安装中运行一些自定义代码,该应用程序扫描用户的计算机并找到Excel的位置,以便我可以将其保存在WPF程序的app.config文件中。稍后,当我们需要启动Excel来编辑文件时,我将在配置文件中使用此路径传递到Process.Start()。
我不想创建Excel加载项或模板(不是选项,所以不建议将其作为答案)。
我们需要担心哪些安全问题?这个计划是“犹太洁食”吗?如果我尝试使用另一个没有Excel可插拔功能的应用程序,该怎么办?您会建议使用哪种方法来查找和启动此应用程序?简单地要求用户找到程序而不是在文件系统中搜索它是否更好?
编辑:有人想讨论一般性问题吗?如果我没有启动Excel,还有其他一些工具(iTunes,Audacity等)怎么办?没有人讨论或谈论过安全问题。搜索可执行文件是否可以?我应该问用户在哪里找到它吗? /编辑
答案 0 :(得分:2)
安装路径位于注册表中:
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\办公室\ 14.0 \ Excel中\ InstallRoot
14.0可能会有所不同,具体取决于版本。
编辑: 通常,大多数安装程序将允许用户在任何他们想要的地方安装应用程序,因此应用程序可执行文件可以位于任何文件夹中的任何磁盘上,因此只能递归搜索所有驱动器上的所有文件夹(在搜索通用安装路径之后)是找到可执行文件的可靠方法。
因此,IMO最好向用户提供浏览对话框,并允许他们自己定位可执行文件。
答案 1 :(得分:0)
作为Excel的路径在“PATH”环境变量中注册,我原本认为运行带有filepath参数的“excel.exe”应该可以正常工作。
或者您可以查看注册表并找出与之关联的“打开方式”应用程序,并建议使用哪一个(使用可选的make作为您应用的默认设置)。