2012-09-03 149 views
0

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

我遇到的唯一问题是如何实际做到这一点,我想下注册表的关键路线,我已经做了一些广泛的研究,并称它对壳牌和第三方,我相信它是我想要做的最合适的选择。我知道如何在C#中设置注册表项,但是我很困惑的一件事是设置注册表项的位置以及我如何使它们与我的应用程序进行通信。

我真的看着被指向正确的方向,我也有几个问题要问。

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

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

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

在哪里/ u是用于上传和%1文件位置的命令,我怎么可以编写我的应用程序理解它需要运行上传功能时,它的命令?

任何帮助或想法将非常感激,谢谢!

编辑:我一直在寻找到让事物的注册表键侧完成,我已经钻研了注册表,我已经决定使用第三方应用程序的安装,因为它只是给了我更多的空间来提供什么我想做的,比如进一步扩展我的项目。我正在使用Inno设置编译器来完成此操作,并且它使用了强大的工具来轻松设置一些注册表值,我可以将其用于上下文菜单。

但是我目前发现很难理解注册表。首先,我需要设置哪些关键字来将我的程序与.png,.gif等文件类型关联?在他们的资源管理器上下文菜单中有一个简单的条目“Upload with SoftwareName”是我所追求的。

谢谢!

回答

1

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

+0

事情是应用程序是VS2010生成的“ClickOnce”应用程序之一,并且我个人对控制它的安装位置和安装位置没有太多控制权。事实上,如果用户具有运行程序所需的必要条件,那么绝对不需要安装,所以我有点困惑哈哈。感谢你的CLI参数,我会研究它们! –

2

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

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

+0

谢谢我将会查看您提供的两个链接! –

相关问题