0

我刚刚使用 Visual Basic 2010 在 C# 中编写了一个应用程序,我花了很长时间,因为我对 C# 的经验很少,但是经过大量学习后,我似乎已经到目前为止,我目前正在编写一个允许用户的应用程序只需右键单击任何图像类型,这将打开资源管理器上下文菜单,并会出现一个新项目“上传到网站”。有了这个,我希望它与我的应用程序通信(通过传递命令?)然后运行我用 WebClient UploadClass 编写的函数。

我遇到的唯一问题是如何实际做到这一点,我想沿着注册表项路线走,我对此进行了一些广泛的研究,并将其与壳牌和第三方进行了权衡,我相信它是最合适的我正在尝试做的事情的选项。我知道如何在 C# 中设置注册表项,但令我感到困惑的一件事是我在哪里设置注册表项以及如何使它们与我的应用程序通信。

我真的在寻找正确的方向,我也有几个问题要问。

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

最后,我怎样才能让我的应用程序理解评论,例如,如果我通过了:

C:\MyDir\MyProgram.exe /u "%1

/u 是上传命令,%1 是文件位置,我如何编码我的应用程序以了解它需要在命令时运行上传功能?

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

编辑:我一直在研究完成注册表项方面的工作,并且我已经深入研究了注册表,我决定使用第三方应用程序安装程序,因为它只是让我有更多空间来提供我想做的事情,例如随着我的项目进一步扩展。我正在使用Inno设置编译器来执行此操作,它附带了强大的工具来轻松设置一些注册表值,我可以将其用于我的上下文菜单。

然而,我目前发现很难理解注册表。首先,我需要设置哪些键才能将我的程序与 .png、.gif 等文件类型相关联?在他们的资源管理器上下文菜单中,一个简单的条目“使用 SoftwareName 上传”就是我所追求的。

谢谢!

4

2 回答 2

2

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

至于与您的程序通信,您将在注册表中设置的密钥将采用您在问题中显示的格式。这基本上将使用 /u 文件名参数打开您的程序。为了在应用程序打开时读取参数,您需要遍历Environment.GetCommandLineArgs(),其中包含所有打开的命令行。然后根据这些是什么,您可以执行您想要的方法。

于 2012-09-04T00:12:54.567 回答
1

无论您使用什么安装程序,它都会知道应用程序的安装位置,并应相应地创建注册表值。至于命令行参数:您必须评估参数并调用相应的函数。请参阅此处了解介绍。

于 2012-09-04T00:12:32.610 回答