VC文件关联小结

最近的工程中要用到了vc中关于文件关联的操作,费了不少周折,这里就简单做一个小结。

(1)使用EnableShellOpen自动完成注册表的注册信息

这种情况下,只需要在CWinApp子类的InitInstance函数中添加如下代码就行

// Enable DDE Execute open
EnableShellOpen();
RegisterShellFileTypes(TRUE);

通常情况下,也有加上这句的必要

// Enable drag/drop open
m_pMainWnd->DragAcceptFiles();

下面以MDI为例,说明几个需要注意的地方:

一、需要修改string table中的IDR_FFTYPE值,来定义默认的文档类型,如

/nFf/nFf/nFf 文件 (*.ff)/n.ff/nFf.Document/nFf Document

其中第三个参数是在打开/保存对话框中文件类型显示的提示信息,第四个参数是你自定义的文件类型的后缀名称。

二、也可以在程序生成向导的第四步中定义你的文档类型,而不需要再进行上面“一”的操作。

三、不同的工程最好是定义不同的自定义文件类型,否则同一个文件类型在注册表中可能会产生数据混乱的现象,从而可能导致程序的不正常关联。

四、若要自定义自己的关联程序的图标,第一步需要将自定义的ico文件覆盖掉res文件夹下默认的IDR_FFTYPE对应的资源文件;第二步,删除工程目录下的aps文件,清空二进制备份,重新载入工程即可。

(2)编辑一个注册表文件来实现关联

REGEDIT
; This .REG file may be used by your SETUP program.
; If a SETUP program is not available, the entries below will be
; registered in your InitInstance automatically with a call to
; CWinApp::RegisterShellFileTypes and COleObjectFactory::UpdateRegistryAll.

HKEY_CLASSES_ROOT/.ff = Ff.Document
HKEY_CLASSES_ROOT/SingleInstMDI.Document/shell/open/command = ff.EXE %1
HKEY_CLASSES_ROOT/SingleInstMDI.Document/shell/open/ddeexec = [open("%1")]
HKEY_CLASSES_ROOT/SingleInstMDI.Document/shell/open/ddeexec/application = ff
; note: the application is optional
; (it defaults to the app name in "command")

HKEY_CLASSES_ROOT/Ff.Document = Ff Document

自定义一个reg文件,内容类似上面的描述。双击执行,导入到自己机器的注册表中去即可。

时间: 2024-09-20 06:43:15

VC文件关联小结的相关文章

vc 文件关联-怎样用VC6.0让JPG与GIF图片的文件可以文件关联到我的程序,右键可以选择我的程序打开

问题描述 怎样用VC6.0让JPG与GIF图片的文件可以文件关联到我的程序,右键可以选择我的程序打开 请问一下怎样用VC6.0实现注册表代码让JPG与GIF图片的文件可以文件关联到我的程序,也就是右键可以选择我的程序打开,并且出现在"打开方式"的选择项里 以下是我在网络搜索的txt文件关联的代码,测试后可以用,可是改成JPG与GIF就无法用了,注册表里的项目很多,不知道JPG与GIF的代码怎么写,最好有测试后可以用的全代码发一下啊,我的是XP的系统 关联自己的应用程序到右键菜单中在Wi

VC 实现文件关联

文件关联的两个简单函数 //--------------------------------------------------------------------------- // 检测文件关联情况 // strExt: 要检测的扩展名(例如: ".txt") // strAppKey: ExeName扩展名在注册表中的键值(例如: "txtfile") // 返回TRUE: 表示已关联,FALSE: 表示未关联 BOOL CheckFileRelation(c

XP系统手动制作exe文件关联修复器的方法

XP系统手动制作exe文件关联修复器的方法   新建文本文档电脑常识 XP系统制作exe文件关联修复器的方法: 1.在桌面上空白处鼠标右键,弹出的快捷菜单指向"新建",在下一级菜单中选择"文本文档"; 2.打开新建的文本文档,将下面的代码复制进去: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOTexefile] @="应用程序" "EditFlags"=hex:3

注册表的文件关联及应用

喜欢使用Windows右键快捷菜单的朋友可能知道,当你选择了一个文件(或者是文件夹或是系统图标)再单击鼠标右键,系统就会弹出一个菜单,菜单上面的各种"功能"(或称"操作")任你选择,但是你是否注意到,当你安装一些应用软件之后,你的右键菜单是不是膨胀,以winzip为例,安装winzip之后,文件或文件夹的右键菜单当中就增加了功能选择项"Add to Zip"和"Add to xxx.zip",如图一,看到这个变化,我们不禁要问

用Ftype命令修复exe文件关联

有次朋友电脑中了病毒,我去看了一下,是个QQ病毒,由于挺长时间没有上网搜集病毒方面消息了,我对这些病毒的特性也不甚了解.我先打开"进程管理器",将几个不太熟悉的程序关闭掉,但刚关掉一个,再去关闭另外一个时,刚才关闭的那个马上又运行了.没办法,我决定从注册表里先把启动项删除后,再重启试试,结果,我刚把那些启动项删除,然后刷新一下注册表,那些启动项又还原了,看来一般的方法是行不通了,上网下载专杀工具后,仍然不能杀掉.我知道这是因为病毒正在运行,所以无法删除. 由于这台电脑只有一个操作系统,

更改Windows XP系统中的文件关联

您可以指定总是使用同一个程序打开具有特定文件扩展名的文件.也可以修改现有文件类型,以更改它与程序的关联.您可以在Windows资源管理器或"我的电脑"中处理文件关联.本文介绍如何在Windows XP中更改文件关联. 如何更改文件关联 您可能希望将某一文件扩展名的关联从一个程序更改为另一个程序.例如,您可能想用您最喜欢的字处理器打开文本文件 (.txt),以便设置文本的格式.默认情况下,文本文件与 Microsoft 记事本关联.默认情况下,已知文件类型的文件扩展名是隐藏的. 查看所有

Dreamweaver 【文件关联】的重置

  Dreamweaver CS 4 在初始安装的时候,会弹出个如下的对话框,想必大家都很熟悉了,在这里大家可以很方便地设置Dreamweaver CS 4 所关联 的文件格式(比如:html,php,asp,jsp),相当的方便. 然而,我们遇到的一个问题是:当我们设置完关联 后,DW没有提供一种方便的方式来管理其自身的文件关联 格式!(即,不能调出上面的对话框了)囧 那么是否存在一种可以修改DW的文件关联 格式的方法呢?想必对整日混迹于各大论坛的看客们来说,实在是小菜一碟了:Google I

Win8系统如何修改文件关联和打开方式?

Win8系统如何修改文件关联和打开方式? 1.首先打开控制面板,选择默认程序. 2.选择设置默认程序. 3.在左侧窗格选定一个应用程序,然后点击选择此程序的默认值. 4.可以选择此程序关联的文件类型. 5.回到控制面板,默认程序界面,选择将文件类型或协议与程序关联. 6.选择一个要更改的文件类型,然后点击右上角的更改程序. 7.会出现如下窗口,可以自行选择使用何种程序打开该文件类型. 8.另外一种操作方式,选中一个文件,点击右键在菜单中的打开方式,也可选择使用何种程序打开此类文件.

Win7系统如何取消文件关联?

  Win7系统如何取消文件关联?: 1.单击开始菜单-运行,并在运行一栏中输入"regedit"按下回车; 2.进入注册表编辑器,按序点击打开:"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.pdf ; 3.把"OpenWithList"注册项下,右侧窗口中除"(默认)"外的注册表键值全部删除,最后还要再删除"UserChoic