社区
界面
帖子详情
文件类型与图标关联
zhonglingyu
2010-06-21 03:37:08
一种文件类型和图标是怎么关联上的呢?
我做了一个软件,能生成.xxx类型的文件,并且该文件有特别的图标。遇到两个问题:
1、我卸载软件后,生成的.xxx类型的文件图标仍然存在。应该显示默认图标啊?怎么去掉关联?
2、我将我的软件安装到一个从来没有安装过该软件的电脑上,安装成功后,从另一电脑上拷贝一个.xxx类型的文件过来,发现该文件显示默认图标,不是软件给与的特别图标,并且双击该文件,也不自动与软件关联起来,而是弹出让你选择程序的窗口。
...全文
587
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 删除掉。
第二个,你没设置文件关联。软件应该有这个功能。
全面解析Windows 7
文件类型
ICO
图标
设计与应用
本文围绕ICO
图标
展开,介绍其在Windows 7系统中常见
文件类型
图标
的视觉特点、与
文件类型
的
关联
。阐述了ICO文件多分辨率等技术特性,还说明了自定义
图标
方法及在不同上下文的应用。此外,探讨了ICO
图标
在其他系统的支持情况、对用户体验的影响及未来趋势。
Linux下的
图标
与文件
关联
机制:freedesktop
文章详细介绍了Linux桌面环境下的freedesktop标准,包括
图标
与文件
关联
机制、桌面
图标
、MIME类型、
文件类型
、菜单规范、启动自启动、最近文件、通知机制等内容。重点讨论了MIME类型如何通过.xml和.mimeapps.list文件进行定义和
关联
,以及如何通过.desktop文件创建桌面
图标
和启动程序。此外,还涵盖了开机自启动、应用程序管理器和
文件类型
的相关配置。
linux
关联
文件类型
,如何在Linux桌面中获取与文件
关联
的
图标
,MIME类型和应用程序?...
本文档展示了如何使用GLib/GIO库在C语言中获取文件路径的详细信息,包括内容类型、默认应用以及
图标
,适合对跨平台文件操作感兴趣的开发者。
关联
文件类型
和
图标
本文详细介绍了如何使用Windows注册表编辑器来
关联
特定的
文件类型
及其
图标
,通过实例展示了如何将.mrf文件与自定义
图标
及应用程序绑定,实现个性化文件识别与打开方式设置。
springboot项目中Yaml配置文件如何变回小绿叶
图标
?
本文聚焦Spring Boot项目中YAML配置文件
图标
显示问题,指出
图标
未正确显示可能与IntelliJ IDEA设置、文件
关联
或插件有关。提供了确保IDEA正确识别
文件类型
、重新
关联
文件类型
、检查插件设置、清理缓存、配置项目文件
图标
等解决方法。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章