安装程序和注册表的问题

时间:2022-06-12 06:37:24
鄙人在做C#安装包的时候遇到个问题。

我想在IE浏览器中添加个按钮来启动本地的程序,这需要加注册表中"Exec"="X:\XXOO.exe"来实现。

但用户启动安装包安装的时候,由于能选择安装的路径。这就需要X:\XXOO根据用户选择安装地点的不同而改变。

而 视图->编辑器->注册表 里只能写入静态的数据,怎么和之后用户安装的地方联动呢?

比如迅雷有IE按钮,它的"Exec"总是能指到用户安装的那个文件里,这要怎么实现?

13 个解决方案

#1


用代码联动   自己写安装程序

#2


试试InstallShield也行  鄙人没用过

#3


我很欣赏LZ的结贴率

#4


引用 3 楼 foxdave 的回复:
我很欣赏LZ的结贴率

................

#5


有没有其他思路呢?

#6


没有吧   要不你就再研究研究VS自带的安装程序的配置   或许也可以  我没研究过

#7


在自定义安装类中操作注册表
Context.Parameters["target"]

#8


引用 7 楼 wuyq11 的回复:
在自定义安装类中操作注册表
Context.Parameters["target"]

如梦~ 如梦~  欧耶~   安装程序和注册表的问题

#9


我也想说3楼说的话!

#10


引用 7 楼 wuyq11 的回复:
在自定义安装类中操作注册表
Context.Parameters["target"]

能不能再详细一点呢?

#11


是这样吗?
using System;

[RunInstaller(true)]
public class Class1
{
    private string lujin;
    
public Class1()
{
        InitializeComponent();
        string  physicalRoot  =   this.Context.Parameters[ " targetdir " ];
}
}


然后注册表的value用physicalRoot来代?

value physicalRoot\CatchP.ico   ******************这个好像不对啊,格式有错误么?

#12



//private string lujin;

#13


正解如下
http://topic.csdn.net/u/20100411/15/1767A69A-D7DC-49F9-A0A8-0B4B6A1D567F.html

#1


用代码联动   自己写安装程序

#2


试试InstallShield也行  鄙人没用过

#3


我很欣赏LZ的结贴率

#4


引用 3 楼 foxdave 的回复:
我很欣赏LZ的结贴率

................

#5


有没有其他思路呢?

#6


没有吧   要不你就再研究研究VS自带的安装程序的配置   或许也可以  我没研究过

#7


在自定义安装类中操作注册表
Context.Parameters["target"]

#8


引用 7 楼 wuyq11 的回复:
在自定义安装类中操作注册表
Context.Parameters["target"]

如梦~ 如梦~  欧耶~   安装程序和注册表的问题

#9


我也想说3楼说的话!

#10


引用 7 楼 wuyq11 的回复:
在自定义安装类中操作注册表
Context.Parameters["target"]

能不能再详细一点呢?

#11


是这样吗?
using System;

[RunInstaller(true)]
public class Class1
{
    private string lujin;
    
public Class1()
{
        InitializeComponent();
        string  physicalRoot  =   this.Context.Parameters[ " targetdir " ];
}
}


然后注册表的value用physicalRoot来代?

value physicalRoot\CatchP.ico   ******************这个好像不对啊,格式有错误么?

#12



//private string lujin;

#13


正解如下
http://topic.csdn.net/u/20100411/15/1767A69A-D7DC-49F9-A0A8-0B4B6A1D567F.html