如何在安装应用程序的hkey_classes_root键上增加价值

7

问题已解决!

我正在尝试创建一个自定义URL协议,以便当用户访问或单击链接myapp:start时启动我的应用程序。

我的问题是如何知道用户安装了我的应用程序的位置。msi安装程序是否可以在注册HKEY_CLASSES_ROOT到注册表时放置位置信息?

HKEY_CLASSES_ROOT
   myapp
      (Default) = "URL:myapp Protocol"
      URL Protocol = ""
      DefaultIcon
           (Default) = "myapp.exe,1"
      shell
           open
               command
                   (Default) = "C:\Program Files\MyAppFolder\MyApp.exe" "%1"

我希望在安装过程中将路径“C:\Program Files\MyAppFolder\MyApp.exe”更改为用户安装我的应用程序的位置。

解决方案

HKEY_CLASSES_ROOT
   myapp
      (Default) = "URL:myapp Protocol"
      URL Protocol = ""
      DefaultIcon
           (Default) = "myapp.exe,1"
      shell
           open
               command
                   (Default) = "[TARGETDIR]MyApp.exe "%1""

[TARGETDIR] 会自动更改为用户安装文件的位置,例如 "C:\Program Files\MyAppFolder\"。
要获取更多信息,请点击此链接-> 将应用程序注册到 URI 方案

1
你使用什么工具来创建MSI安装程序? - Rudi Visser
Visual Studio 2010的普通设置项目 - Jeff Robert Dagala
可能是这样,但我们需要知道您使用的是哪种特定技术来编写安装包。 - Damien_The_Unbeliever
1个回答

4

使用Visual Studio安装程序项目时,您可以在创建注册表键时使用[TARGETDIR]变量。

此变量会自动设置为应用程序正在安装的目标目录,只需将您的.exe文件附加到末尾即可。


是这样吗?(默认)=“[TARGETDIR]\MyApp.exe”“%1” - Jeff Robert Dagala
我身边没有VS2010,但你可以参考这个问题进行操作(https://dev59.com/qUrSa4cB1Zd3GeqPWnUT),它做的是同样的事情。从外表看来,你有一个.reg文件?它不能起作用。 - Rudi Visser
等一下,这个网站可能更好。 - Rudi Visser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接