最近老发帖,快成乞丐了……首先谢谢我刚才结的那几张帖子上各位大侠的帮助,问题都解决了,CSDN是个好地方~
我是学生,以前没做过给别人用的应用程序,所以就没做过安装文件,但这次参加一个比赛,组织者要求有安装文件,现在程序基本都写好了,就是不知道怎么做安装文件,开发环境是VS2005,语言C#,希望在安装文件里能让用户选择安装的位置、在桌面或快速启动栏创建快捷方式、是否开机自动运行(写注册表的部分还没测试过,下面是我写的代码,各位看看对不对),嗯,差不多就这些功能设置自动运行的代码(用户只针对VISTA): try
{
RegistryKey register1 = Registry.LocalMachine;
RegistryKey register2 = register1.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); string exePath = Directory.GetCurrentDirectory() + "VoiceHelper.exe"; if (AutoRun.Checked == true)
{
register2.SetValue("VoiceHelper", exePath);
}
else
{
register2.SetValue("VoiceHelper", false);
}
MessageBox.Show("Succeeded!!");
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
还有些其他的问题,比如说怎么让程序自动以管理员的身份运行(VISTA下的那个“右键->以管理员身份运行机制”很烦人,想通过程序实现自动获得管理员权限,不知怎么实现)就这些了,把所有的问题都放到一个帖子上了,大家能帮助什么就帮助什么吧,关于写注册表、创建快捷方式、以管理员身份运行的最好给点儿代码;五一学校图书馆不开放,网上的资源也挺乱的,就来这儿求助了,我级别不够,只能开100分,明天再加~谢谢各位了~~五一快乐~~
我是学生,以前没做过给别人用的应用程序,所以就没做过安装文件,但这次参加一个比赛,组织者要求有安装文件,现在程序基本都写好了,就是不知道怎么做安装文件,开发环境是VS2005,语言C#,希望在安装文件里能让用户选择安装的位置、在桌面或快速启动栏创建快捷方式、是否开机自动运行(写注册表的部分还没测试过,下面是我写的代码,各位看看对不对),嗯,差不多就这些功能设置自动运行的代码(用户只针对VISTA): try
{
RegistryKey register1 = Registry.LocalMachine;
RegistryKey register2 = register1.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); string exePath = Directory.GetCurrentDirectory() + "VoiceHelper.exe"; if (AutoRun.Checked == true)
{
register2.SetValue("VoiceHelper", exePath);
}
else
{
register2.SetValue("VoiceHelper", false);
}
MessageBox.Show("Succeeded!!");
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
还有些其他的问题,比如说怎么让程序自动以管理员的身份运行(VISTA下的那个“右键->以管理员身份运行机制”很烦人,想通过程序实现自动获得管理员权限,不知怎么实现)就这些了,把所有的问题都放到一个帖子上了,大家能帮助什么就帮助什么吧,关于写注册表、创建快捷方式、以管理员身份运行的最好给点儿代码;五一学校图书馆不开放,网上的资源也挺乱的,就来这儿求助了,我级别不够,只能开100分,明天再加~谢谢各位了~~五一快乐~~
解决方案 »
- 没有注册类别 (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
- .NET WEB怎么样调用.OCX文件
- 难!怎样在C#中屏蔽Alt+F4,Alt+Tab,Ctrl+Alt+Delete键
- 【跪求】前些天通宵工作,今天又遇TreeView新问题。高手帮忙,否则又得通宵。【跪求】
- C# 调 win32程序 ,高手进,低手别进!!!
- 登录界面的实现 为什么登录时if语句就没执行 总是用户名和密码错误 数据库里已经先设定了用户名 登录是为什么还不行啊?帮帮忙解决
- 作了一个小程序,麻烦大家指导一下。
- 串口类
- 急,请教怎样用C#做统计代码行数的工具?
- 付费求修改码!
- 自定义控件的KeyDown事件
- 【急】求助高人呀,关于C#里面socket异步编程的疑问
推荐使用Setup Factory ,我一直用的这个做打包安装文件,你可以试试
2. 在新添加的安装项目上右击, 选择"视图"--"文件系统", 右击"目标计算机上的文件系统"作侧的"应用程序文件夹", 选择"添加文件"或者"添加项目输出",将你要安装的文件添加到该位置;
3. 初始的安装位置: 在上面的"文件系统"界面, 左击"应用程序文件夹", 在"属性"栏中找到"DefaultLocation", 默认的属性值是: [ProgramFilesFolder][Manufacturer]\[ProductName], 这就是用户安装的默认位置, 如果不是这样, 修改成这样.
4. 另外, 在"解决方案管理器"中, 点击你添加的安装项目, 在"属性"编辑栏中, 在[Manufacturer]中填入你公司的名字或者你自己希望的文字, 在[ProductName]填入你为要被安装的项目命名的名字.
5. 先在"解决方案管理器"中"生成"你的项目, 然后"生成"你的安装项目
6. 在"解决方案管理器"中,右击你的安装项目, 选择"安装", 便可在你的开发机上进行安装了, 在你的安装项目的路径下的bin下有两个文件夹: debug 和 Release,
7. 在解决方案管理器中,右击你的安装项目, 选择"属性", 如果你的项目属性里选择的是 "配置" 是 "debug", 则你生成的安装文件在 debug 里面, 如果选择的"配置"是 "Release", 则生成的安装文件在 Release 里面. 当然你也可以修改你的位置可文件名, 还可以对你的安装文件进行其它的设置. 二.
在解决方案管理器中, 右击添加的"安装项目", 选择"视图"--"注册表";
在"目标计算机上的注册表"下,默认有注册表的五个主键栏;
默认情况下, 在 [HKEY_CURRENT_USER] 和 [HKEY_CURRENT_MACHINE] 下会有 [Software]\[Manufacturer] 分支, 如果你的安装项目的属性中设置了 [Manufacturer]值, 安装后会用值去替代[Manufacturer], 例如 [Manufacturer] 的值 设置为 "Power Word", 则安装后会在 [Software]下创建一个[Power Word]分支;
默认情况下 [Manufacturer] 的 AlwaysCreate 属性是 false, 即:如果你的 [Manufacturer] 下没有项目,则不创建 [Manufacturer] ,如果无论如何都要创建这个键, 则可将 它的 AlwaysCreate 设置为 true;
依照上面的方法, 在你想建注册表项的主键中逐级新建分支项和项目, 在新建的注册表项目上右击后选属性, 设置注册项的 value 值;
无论是建主键分支还是项目, 都可以用 [] 的方法使用系统变量来动态指定需要添加的注册表内容. 例如:
[Manufacturer] 存放的是安装项目的公司值,
[ProductName] 存放的是安装项目属性中的 产品名称,
[TARGETDIR] 存放的是安装时用户选定的安装路径,
[COMPANYNAME] 存放的是安装时用户填入的公司名(如果没设用户信息安装界面则取操作系统中的公司名),
[USERNAME] 存放的是安装时用户填入的用户名(如果没设用户信息安装界面则取操作系统中的用户名,
如此等等如果想要在安装时出现注册码, 要么自己做一个DLL或者EXE项目, 加入到 自定义操作中在安装时打开界面输入注册码, 要么使用VS安装项目自带的界面(在视图--用户界面中添加"用户信息"安装界面,设置showserialnumber 为 true), 不过那个注册码是用 模7 来验证的, 只要是验证位数值之和能被7整除都能通过, 就像以前安装盗板 office 97 时输入 "1111111"一样.