【问题标题】:Using a context menu to send a file to another application in C#使用上下文菜单将文件发送到 C# 中的另一个应用程序
【发布时间】:2015-07-08 22:26:51
【问题描述】:

我目前正在创建一个可以容纳多个图像的应用程序,我决定在图像上单击鼠标右键时会出现一个上下文菜单,并且可以选择发送到图像编辑应用程序,例如 Photoshop, Gimp,油漆等......

我知道如何创建上下文菜单,但是我不确定要使用哪些代码将图像发送到应用程序本身。

【问题讨论】:

  • 大多数应用程序将文件名作为第一个参数。你可以触发一个像paint.exe "X:\somePath\myImage.bmp"这样的shell命令
  • 如果我的答案是该问题的已接受答案,那么您应该通过单击答案旁边的空心复选标记来接受它,使其变为绿色。如果您找到了不同的解决方案,那么您应该在此处描述并接受它。

标签: c#


【解决方案1】:

如果您想在默认应用程序中打开该文件,那么该文件已经是 answered。如果您想在“编辑”上下文菜单项上执行资源管理器所做的相同操作,则从上面的链接中将这两行添加到“原始、复杂的答案”中:

if (psi.Verbs.Contains("Edit", StringComparer.OrdinalIgnoreCase))
    psi.Verb = "edit";

您应该根据MSDN 检查psi.Verbs 中是否存在您想要的动词。如果没有“编辑”动词,则代码默认调用默认应用程序。

如果您想为用户提供用户已安装的所有图像编辑应用程序的列表,那么您必须拥有此类应用程序的硬编码数据库及其安装 GUID,检查它们是否已安装,找出它们的位置已安装(可能不在默认位置),并列出它们,并使用您的文件作为命令行参数调用每个。给出代码太复杂了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2017-10-06
    • 2015-04-14
    相关资源
    最近更新 更多