c# - 在 WPF 应用程序运行时添加资源管理器上下文菜单
问题描述
我有一个 WPF 应用程序,它使用来自另一个控制台应用程序项目的 API 来执行各种文件操作操作。我还有一个 SharpShell 扩展,为我提供了一个上下文菜单选项,以便在单击控制台应用程序时从它运行一个方法。
我的问题是 SharpShell 扩展无法从我的控制台应用程序运行某些重要方法。我相信这是因为该扩展目前独立于我的表单应用程序运行。
我希望所有文件(在资源管理器中)的上下文菜单仅在 WPF 应用程序运行/最小化到托盘时出现。这样,我希望上下文菜单扩展能够访问它需要从控制台应用程序执行的对象实例和方法。
为了让您更好地了解我的目录结构:
--
控制台项目
- 暴露的 API
表格项目
- 表单 UI 的东西
- 表单 UI 操作
- 使用“公开 API”
SharpShell 扩展类库项目
- 上下文菜单扩展
- 使用“公开的 API”[此处失败]
--
有没有办法将我的上下文菜单扩展“附加”到 WPF 应用程序?有没有办法只通过 WPF 应用程序而不用 SharpShell 来做到这一点?
如果没有,如何在不重新运行 WPF 应用程序可执行文件的情况下从 SharpShell 扩展访问和调用当前运行的 WPF 应用程序中的方法?
解决方案
弄清楚了。事实证明,这很容易实现,方法是创建另一个进程来处理特定于应用程序的方法以及不需要由 SharpShell 上下文菜单运行的方法,并将其作为带有上下文菜单扩展名的参数的单独 exe 文件启动。
推荐阅读
- google-cloud-build - 谷歌云构建:在谷歌云存储库上克隆私有存储库失败
- excel - 自动填充无法正常工作 (VBA)
- multiple-columns - 使用 awk 和 if - else if 语句操作数据列
- angular - 升级 Angular 6 时的 Webpack 警告
- javascript - 在 React + Redux 中使用新的生命周期方法通过更改 id 来获取数据
- php - Laravel 在 JSON 中获取数据时无法识别 $this->id
- wicket - Wicket 8 AnnotatedMountScanner 不再工作
- javascript - jquery对所有输入文本的模糊验证
- sql-server - 对开始日期或结束日期可能未知的日期范围使用空值?
- javascript - React Native 出错并且不确定它是关于什么的