在C#应用程序中使用第三方上下文菜单(适用于Windows资源管理器)?

8
与其他希望在Windows资源管理器中添加项目的人不同,我想在我的应用程序中显示上下文菜单。现在你可能会认为,你要找的类是ContextMenu。让我向你展示我感兴趣的事情。请原谅图片小一点... 这是我目前拥有的: My current context menu 这就是我想要的: What I'd like it to look like 让我们先理清一些假设。我已经检测到用户安装了TortoiseSVN,并且他们选择的项处于源代码控制下。
到目前为止,我的研究结果如下: 检索上下文菜单 - 这非常有用。这是一个用于Windows资源管理器的C#库(可以检索特定文件夹/文件的上下文菜单)。然而,即使测试了示例,它也无法检索TortoiseSVN选项。 另一个上下文菜单检索 - 几乎与前面的链接相同(再次是C#代码)。获取Windows资源管理器上下文菜单,但不包括TortoiseSVN选项。 添加上下文菜单的过程 - 我刚开始阅读这些深入的帖子。答案可能在这些文本中,但我需要一些时间来理解。如果我在这方面有任何运气,我会发表一个答案。 用户似乎能够做到这一点 - 这似乎是一个处理SVN开发的电子邮件组。为什么要在这里发布呢?也许是为了证明这是可以做到的。引用一下:“我正在使用IContextMenu.QueryContextMenu(C++代码)方法访问TSVN shell上下文菜单,然后我正在浏览返回的菜单。”
总之,这似乎应该是一件相当简单的事情,我只是错过了一步。欢迎任何建议。谢谢!
编辑:尝试更好地使用标签和更专注的标题

我一直在尝试查看TortoiseSVN上下文菜单在使用类似Windows资源管理器的两个开源C#项目时未显示的不同原因。最近我意识到的是,虽然TortoiseSVN没有出现,但其他第三方工具却有(例如Beyond Compare)。我最初认为可能存在注册表键的差异,这对此起了作用。但是我没有在这方面找到任何成功的经验(TSVN与BC在所有相同的注册表位置中都存在)。我开始怀疑这是否真的只是一个TortoiseSVN的问题。我会在获取更多信息后进行更新。 - techvice
请解释一下为什么 .net 类 ContextMenu 无法工作。 - PeterM
如果您特别想使用TortoiseSVN,您可以直接调用它:http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html - oefe
1
这可能是32位与64位的问题吗? - oefe
@PeterM 你误解了问题。是的,ContextMenu 是基本上正在使用的东西,但我想要将 Windows Explorer 上下文菜单中的特定项目整合进来,而不必自己重新制作它们。 - techvice
@oefe 一个好问题。不幸的是,我不能深入探讨它(我已经不参与这个项目了)。但是我没有考虑到这一点,我知道我的安装是x64,而其他第三方工具是x86。我敢打赌你发现了什么... - techvice
2个回答

0

没什么帮助。你所做的只是展示了那些在stackoverflow.com上很容易找到的链接。而且,你列出的链接本质上归结为我已经提供的链接。 - techvice

0

与其试图从Windows资源管理器中提取文件,我最终决定重新实现ContextMenu。添加直接调用TortoiseSVN(如先前提到的)的功能。这不是我想要的超级优雅的解决方案,但当然它有效!

我注意到用户oefe指出主要问题可能是由于x86与x64(TortoiseSVN在我的开发机器上安装为x64)导致的。如果其他用户尝试完成类似的任务,他们可能需要查看一下。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接