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 方案

4

1 回答 1

4

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

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

于 2013-03-11T10:55:52.230 回答