2013-11-21 66 views
0

我有一个以命令行方式调用的应用程序。我希望将协议与它联系起来,我们称之为协议runapprunapp将会拨打runapp.exe在VS2010部署项目中配置Windows协议

我打算通过应用程序部署项目的注册表部分进行配置。我首先看了其他协议,特别是mailto。我注意到,我需要以下条件:

  • HKEY_CLASSES_ROOT下一个新的密钥称为runapp
  • 一系列新的钥匙到runapp项下创建HKEY_CLASSES_ROOT\runapp\shell\open\command
  • ,我将添加两个字符串,(Default)与价值URL:runapp protocol和第二个字符串URL Protocol和没有值
  • 也根据command键,我需要添加一个字符串,(Default)与值"C:\path\runapp.exe" "%1"

我把所有这些都设置好了。但实际运行安装程序时,在我的(Default)字符串之前,已经有了另一个无价值的(Default)字符串。所以它看起来像我以错误的方式设置(Default)字符串。什么是正确的方法?

其次,我在备份所有内容后手动在注册表中黑掉了这个不正确的键。现在,当我的键看起来非常像mailto的时候,我终于停止了“找不到程序”的错误,但是我的应用程序似乎根本没有执行。

关于如何正确设置(Default)字符串和进一步解决协议问题的任何想法?谢谢。

+1

你实际上是否在使用“(默认)”作为数值名?如果是这样,那可能是你的问题。 –

+0

但是你不能让它一片空白。如果你没有设置,它会变成'New Value#N'。那么我怎么能模仿一个名为'(Default)'的字符串的设置呢? – kmarks2

+1

我还没有在一段时间内完成安装项目,但我知道在代码中使用RegSetValueEx(),您使用NULL或“”来设置默认值。 –

回答

相关问题