我的目的:双击安装包,安装完毕,桌面上的.cws文件变成我指定的图标,并且双击能用我的程序打开该文件。
求各位帮忙!分少,见谅。谢谢啦!
求各位帮忙!分少,见谅。谢谢啦!
解决方案 »
- C# Throw 报错,请指教
- visual studio 2010中自动格式是什么快捷?(eclipse中是ctrl+shift+f)
- 有没有不用excel控件实现excel字体之类信息读取的方法
- 为什么我线程的显示没有按照我设置的优先级来显示?
- axWebBrowser 后退\前进的问题
- WinForm一个窗体如何调用另一个窗体的事件
- 求C#关于Oracle 9i的select、delete、update、insert的操作代码?谢谢了
- TextBox Text 改变时触发事件
- datagridview 中数据如何批量修改sql2005 中数据
- C# Word里面直接插入图片对象,不用图片路径~
- Picturebox label
- 水晶报表绑定两个数据表,绑定完成,不显示数据,为什么。
http://topic.csdn.net/t/20041001/11/3422823.html
你先把一个DLL格式的文件改成文本,然后你取找注册表里面对应的是怎么添加相应的依赖的,你就对注册表进行操作就行了。
对于你那个格式 原理是一样的
我写一个试试吧。
//写入程序相关
private void WriteApp()
{
//设置程序打开路径
string path = "\"C:\\Users\\Administrator\\Desktop\\Test\\TestWinForm\\bin\\Debug\\TestWinForm.exe\"";
RegistryKey root = Registry.ClassesRoot;
RegistryKey f1 = root.CreateSubKey("Form1");
//设置注册表程序打开的项与值,其中SetValue("", path)代表设置默认值
f1.CreateSubKey("shell").CreateSubKey("Open").CreateSubKey("Command").SetValue("", path); //设置程序图标
string ico = "\"C:\\Users\\Administrator\\Desktop\\u7_original.ico\"";
f1.CreateSubKey("DefaultIcon").SetValue("", ico);
} //写关联文件
private void WriteRelate()
{
RegistryKey root = Registry.ClassesRoot;
//设置打开程序
root.CreateSubKey(".cws").CreateSubKey("OpenWithProgids").SetValue("Form1","");
}这个已经可以做到你要的了,你执行完毕以后,结束并重启进程explorer.exe 或者重启电脑即可
一会我吃过饭 可以补一个如果存在改注册表格式或者程序名称,就删除或者补充打开方式
我是用Inno Setup 打包的
我在想想别的办法
谢谢你
明天结贴的时候给分