C# 浏览器上下文菜单

C# 浏览器上下文菜单,c#,registry,installation,contextmenu,C#,Registry,Installation,Contextmenu,我刚刚用VisualBasic2010用C语言编写了一个应用程序,这花了我相当长的时间,因为我对C语言几乎没有经验。然而,在迄今为止我似乎已经掌握了很多知识之后,我目前正在编写一个应用程序,允许用户只需右键单击任何图像类型,这将打开浏览器上下文菜单,出现一个新项目“上载到网站”。这样,我希望它与我的应用程序通信(通过传递命令?),然后运行我用WebClient UploadClass编写的函数 我唯一的问题是如何真正做到这一点,我想沿着注册表项的路线走下去,我已经做了一些广泛的研究,并与壳牌和第

我刚刚用VisualBasic2010用C语言编写了一个应用程序,这花了我相当长的时间,因为我对C语言几乎没有经验。然而,在迄今为止我似乎已经掌握了很多知识之后,我目前正在编写一个应用程序,允许用户只需右键单击任何图像类型,这将打开浏览器上下文菜单,出现一个新项目“上载到网站”。这样,我希望它与我的应用程序通信(通过传递命令?),然后运行我用WebClient UploadClass编写的函数

我唯一的问题是如何真正做到这一点,我想沿着注册表项的路线走下去,我已经做了一些广泛的研究,并与壳牌和第三方进行了权衡,我相信这是我尝试做的最合适的选择。我知道如何在C#中设置注册表项,但有一件事让我感到困惑,那就是我在哪里设置注册表项,以及如何准确地使它们与我的应用程序通信

我真的希望被指向正确的方向,我还有几个问题要问

当我开始实际设置键时,我的应用程序存储在哪里?我不希望菜单损坏或缺少命令,我已在主驱动器中的Program Files文件夹中查找了应用程序,但该应用程序实际上并不存在,它正在使用Visual Studio 2010提供的一键式安装程序进行安装

最后,如何使我的应用程序理解注释,例如,如果我通过了:

C:\MyDir\MyProgram.exe /u "%1
其中/u是上传命令,%1是文件位置,我如何对应用程序进行编码,以了解在收到命令时需要运行上传功能

任何帮助或想法都将不胜感激,谢谢

编辑:我一直在研究如何完成注册表项方面的工作,并深入研究了注册表,我决定使用第三方应用程序安装程序,因为它只会给我更多空间来提供我想做的事情,例如进一步扩展我的项目。我正在使用setup编译器来实现这一点,它提供了强大的工具来轻松设置一些注册表值,我可以将这些值用于我的上下文菜单

然而,我目前发现很难理解注册表。首先,我需要设置哪些键才能将程序与.png、.gif等文件类型相关联?在他们的浏览器上下文菜单中输入一个简单的“Upload with SoftwareName”就是我想要的


谢谢

无论您使用什么安装程序,它都会知道应用程序将要安装到哪里,并且应该相应地创建注册表值。至于命令行参数:您必须计算参数并调用相应的函数。请参阅以获取介绍。

无论您使用什么安装程序,它都会知道应用程序将安装在何处,并且应该相应地创建注册表值。至于命令行参数:您必须计算参数并调用相应的函数。请参阅以获取介绍。

首先,您需要为资源管理器创建一个新的上下文菜单项。这可以通过在HKEY_CLASSES_根目录中添加注册表项来实现,具体取决于您希望应用程序显示在文件/文件夹右键单击上的文件。请看一个例子


至于与您的程序通信,您将在注册表中设置的键将采用您在问题中显示的格式。这将基本上用/u文件名参数打开程序。为了在应用程序打开时读取参数,需要迭代包含所有打开命令行的文件。然后根据这些内容,您可以执行所需的方法。

首先,您需要为资源管理器创建一个新的上下文菜单项。这可以通过在HKEY_CLASSES_根目录中添加注册表项来实现,具体取决于您希望应用程序显示在文件/文件夹右键单击上的文件。请看一个例子


至于与您的程序通信,您将在注册表中设置的键将采用您在问题中显示的格式。这将基本上用/u文件名参数打开程序。为了在应用程序打开时读取参数,需要迭代包含所有打开命令行的文件。然后根据这些内容,您可以执行所需的方法。

问题是,该应用程序是VS2010生成的“ClickOnce”应用程序之一,我个人无法控制它的安装位置和安装内容。事实上,如果用户拥有运行该程序所需的必备条件,那么绝对不需要安装,所以我有点困惑哈哈。感谢您提供的CLI参数,我将研究它们!问题是该应用程序是VS2010生成的“ClickOnce”应用程序之一,就我个人而言,我无法控制它的安装位置和安装内容。事实上,如果用户拥有运行该程序所需的必备条件,那么绝对不需要安装,所以我有点困惑哈哈。感谢您提供的CLI参数,我将研究它们!谢谢你,我将研究你提供的两个链接!谢谢你,我将研究你提供的两个链接!