社区
界面
帖子详情
文件类型与图标关联
zhonglingyu
2010-06-21 03:37:08
一种文件类型和图标是怎么关联上的呢?
我做了一个软件,能生成.xxx类型的文件,并且该文件有特别的图标。遇到两个问题:
1、我卸载软件后,生成的.xxx类型的文件图标仍然存在。应该显示默认图标啊?怎么去掉关联?
2、我将我的软件安装到一个从来没有安装过该软件的电脑上,安装成功后,从另一电脑上拷贝一个.xxx类型的文件过来,发现该文件显示默认图标,不是软件给与的特别图标,并且双击该文件,也不自动与软件关联起来,而是弹出让你选择程序的窗口。
...全文
526
13
打赏
收藏
文件类型与图标关联
一种文件类型和图标是怎么关联上的呢? 我做了一个软件,能生成.xxx类型的文件,并且该文件有特别的图标。遇到两个问题: 1、我卸载软件后,生成的.xxx类型的文件图标仍然存在。应该显示默认图标啊?怎么去掉关联? 2、我将我的软件安装到一个从来没有安装过该软件的电脑上,安装成功后,从另一电脑上拷贝一个.xxx类型的文件过来,发现该文件显示默认图标,不是软件给与的特别图标,并且双击该文件,也不自动与软件关联起来,而是弹出让你选择程序的窗口。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
littleplane
2010-07-13
打赏
举报
回复
给一个函数
参数说明:
strExtension 扩展名类型 比如"txr"
strApplicationName 关联程序的路径 比如"C:\\program files\\may app\\a.exe"
strRunKey 双击运行时的参数
strDefaultIcon 默认图标的路径 比如"C:\\program files\\may app\\a.ico"
strDescription 文件类型描述 比如"a类型文件"
BOOL RegisterFileRelation( const CString& strExtension,
const CString& strApplicationName,
const CString& strRunKey,
const CString& strDefaultIcon,
const CString& strDescription )
{
HKEY hRegeditKey ;
if ( RegOpenKey( HKEY_CLASSES_ROOT, strExtension, &hRegeditKey ) != ERROR_SUCCESS )
{
if ( RegCreateKey( HKEY_CLASSES_ROOT, strExtension, &hRegeditKey ) != ERROR_SUCCESS )
{
return FALSE ;
}
}
RegSetValue( hRegeditKey, _T(""), REG_SZ, strRunKey, strRunKey.GetLength()+1 ) ;
RegCloseKey( hRegeditKey ) ;
if ( RegOpenKey( HKEY_CLASSES_ROOT, strRunKey, &hRegeditKey ) != ERROR_SUCCESS )
{
if ( RegCreateKey( HKEY_CLASSES_ROOT, strRunKey, &hRegeditKey ) != ERROR_SUCCESS )
{
return FALSE ;
}
}
RegSetValue( hRegeditKey, _T(""), REG_SZ, strDescription, strDescription.GetLength()+1 ) ;
RegCloseKey( hRegeditKey ) ;
if ( RegOpenKey( HKEY_CLASSES_ROOT, strRunKey, &hRegeditKey ) != ERROR_SUCCESS )
{
if ( RegCreateKey( HKEY_CLASSES_ROOT, strRunKey, &hRegeditKey ) != ERROR_SUCCESS )
{
return FALSE ;
}
}
CString strRegedit ;
strRegedit.Format( _T("%s\\DefaultIcon"), strRunKey ) ;
if ( RegOpenKey( HKEY_CLASSES_ROOT, strRegedit, &hRegeditKey ) != ERROR_SUCCESS )
{
if ( RegCreateKey( HKEY_CLASSES_ROOT, strRegedit, &hRegeditKey ) != ERROR_SUCCESS )
{
return FALSE ;
}
}
if ( strDefaultIcon.IsEmpty() )
{
strRegedit.Format( _T("\"%s\",3"), strApplicationName ) ;
}
else
{
strRegedit = strDefaultIcon ;
}
RegSetValue( hRegeditKey, _T(""), REG_SZ, strRegedit, strRegedit.GetLength()+1 ) ;
RegCloseKey( hRegeditKey ) ;
strRegedit.Format( _T("%s\\Shell"), strRunKey ) ;
if ( RegOpenKey( HKEY_CLASSES_ROOT, strRegedit, &hRegeditKey ) != ERROR_SUCCESS )
{
if ( RegCreateKey( HKEY_CLASSES_ROOT, strRegedit, &hRegeditKey ) != ERROR_SUCCESS )
{
return FALSE ;
}
}
strRegedit = _T("Open") ;
RegSetValue( hRegeditKey, _T(""), REG_SZ, strRegedit, strRegedit.GetLength()+1 ) ;
RegCloseKey( hRegeditKey ) ;
strRegedit.Format( _T("%s\\Shell\\Open\\Command"), strRunKey ) ;
if ( RegOpenKey( HKEY_CLASSES_ROOT, strRegedit, &hRegeditKey ) != ERROR_SUCCESS )
{
if ( RegCreateKey( HKEY_CLASSES_ROOT, strRegedit, &hRegeditKey ) != ERROR_SUCCESS )
{
return FALSE ;
}
}
strRegedit.Format( _T("\"%s\" \"%%1\""), strApplicationName ) ;
RegSetValue( hRegeditKey, _T(""), REG_SZ, strRegedit, strRegedit.GetLength()+1 ) ;
RegCloseKey( hRegeditKey ) ;
return TRUE ;
}
向立天
2010-07-13
打赏
举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了
疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面
界面版关于版主结帖工作的具体办法
allenhiman
2010-07-01
打赏
举报
回复
你用的什么工具打包的 那个工具你应该会写相关的脚本吧 按照链接的说明添加相关操作的脚本啊 那些手动操作都可以用脚本实现的吧
向立天
2010-07-01
打赏
举报
回复
此贴已编入疑难问题汇总
希望你的问题能早日得到解决
needanothercoder
2010-07-01
打赏
举报
回复
顶顶得分
allenhiman
2010-06-22
打赏
举报
回复
我。。。 那你就用代码写那些手动该做的事情啊 安装包都支持脚本的吧 常用的NIS MSI都支持
zhonglingyu
2010-06-22
打赏
举报
回复
[Quote=引用 6 楼 allenhiman 的回复:]
我。。。 那你就用代码写那些手动该做的事情啊 安装包都支持脚本的吧 常用的NIS MSI都支持
[/Quote]
小妹不才,能否说的详细些,应该在什么地方做些什么工作。
zhonglingyu
2010-06-21
打赏
举报
回复
我看了,没有达到我想要的目的。
我发布软件,希望它在安装后自动与类型关联,在卸载后自动失去关联。而不是手动去修改关联。。
zhonglingyu
2010-06-21
打赏
举报
回复
[Quote=引用 3 楼 allenhiman 的回复:]
http://zhidao.baidu.com/question/2230417.html
[/Quote]
先谢谢楼上。很多呀!我先看看能用上不。
allenhiman
2010-06-21
打赏
举报
回复
http://zhidao.baidu.com/question/2230417.html
zhonglingyu
2010-06-21
打赏
举报
回复
[Quote=引用 1 楼 xfill 的回复:]
注册表 root 下,找到你的扩展名,比如 *.txt 删除掉。
[/Quote]
我删除了,图标还是存在。。
xfill
2010-06-21
打赏
举报
回复
注册表 root 下,找到你的扩展名,比如 *.txt 删除掉。
第二个,你没设置文件关联。软件应该有这个功能。
文件类型
关联
的文件
图标
本文将讨论如何得到与特定的
文件类型
关联
的文件
图标
? 这个问题依赖于你是想要得到一个指定文件的
图标
还是只想得到普通文件的
图标
。如果你有一个特定的文件,如C:/MyFile/SomeFile.zzp。那你可以调用...
关联
文件类型
和
图标
关联
文件类型
和
图标
WindowsRegistryEditorVersion5.00[HKEY_CLASSES_ROOT\.mrf]@="Metarace.DataFile"[HKEY_CLASSES_ROOT\Metarace.DataFile]@="Metarace数据文件"——这里为该类型文件的说明[HKEY_CLASSES_ROOT\...
设置指定类型文件
关联
图标
注册表文件
关联
,
图标
关联
void RegeditFileToSystem(CString strApplication, CString sFileType,CString sIconFile, CString strDescription ...)*/) //sFileType
关联
的.file文件 { CString strRunKey; strRunKey.Format("%s_auto_...
C# 注册自定义
文件类型
实现自定义
文件类型
关联
默认应用程序
如果没有向Windows注册表注册该
文件类型
,那么.osf文件的
图标
将是windows的文件默认
图标
,并且你双击一个a.osf文件,也不会自动启动应用程序来加载a.osf文件。如何使.osf文件的
图标
变成我自己喜爱的
图标
、如何完成像...
Win7更改
文件类型
图标
Win7更改
文件类型
图标
使用过win7的人,肯定都知道win7没有一个现成的提供你更改文件
图标
的工具。比如.*.rmvb、*.doc,我们并不想使用其原先的默认
图标
;或者是某个软件因为下载的是硬盘版,所以没有进行文件
关联
,...
界面
15,980
社区成员
115,900
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章