如何注册自己创建的文件类型的默认打开文件啊?

djhdu 2003-04-04 09:10:51
我自己定义了一个文件保存的类型,扩展名是“*.sm4”,然后安装了一个软件,当双击这种类型的文件的时候,让安装的软件去打开它,怎样写代码啊?我不是用的文档结构,我用的是对话框?
...全文
131 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhucde 2003-09-20
  • 打赏
  • 举报
回复
一般可以用安装制作软件来搞定,
也可以用程序来编写,
那就是利用注册表来进行文件关联.

例:关联 *.sm4文件:


[HKEY_CLASSES_ROOT\.wpf]
@="wpffile"

[HKEY_CLASSES_ROOT\.wpf\shell]

[HKEY_CLASSES_ROOT\.wpf\shell\open]

[HKEY_CLASSES_ROOT\.wpf\shell\open\command]
@="c:\sm4test.exe"

@表示用默认项就行,后面的值都是REG_SZ型的.
在你的程序初始化时,你按上面的顺序,
创建各项并赋值就可以进行文件关联了
wangcm 2003-09-20
  • 打赏
  • 举报
回复
来接分
clin2y 2003-05-13
  • 打赏
  • 举报
回复
gz
lifeequation 2003-04-05
  • 打赏
  • 举报
回复
gz
akiy 2003-04-05
  • 打赏
  • 举报
回复
关注
用户 昵称 2003-04-05
  • 打赏
  • 举报
回复
http://www.copathway.com:9191/vchelp/zsrc/cfile_type_demo.zip
djhdu 2003-04-04
  • 打赏
  • 举报
回复
怎样知道应用程序的图标序号啊?
djhdu 2003-04-04
  • 打赏
  • 举报
回复
[HKEY_CLASSES_ROOT\ttt.Documenttid\DefaultIcon]
@="e:\\vcwork\\ttt\\debug\\ttt.exe,1"
后面的1代表什么呢,我也按照这个样的格式写到注册表里面了,但是图标还是没有换成我的应用程序的图标,这是什么原因啊?
sunyou 2003-04-04
  • 打赏
  • 举报
回复
面包已经有了,没有叉子用刀子不行吗,手工把这些键值加入注册表不行吗:)
注册文件类型的结果是在注册表中产生了那些键值

RegCreateKey
RegSetValue
具体怎么用MSDN有详细的说明
phiger 2003-04-04
  • 打赏
  • 举报
回复
API:
RegCreateKey
RegSetValue
djhdu 2003-04-04
  • 打赏
  • 举报
回复
sunyou(sunyou),你说的不错,不过,我主要是想用代码实现关联,而且我不能使用RegisterShellFileTypes()这个函数,因为我的程序不是文档、视图结构!
CCBeyond 2003-04-04
  • 打赏
  • 举报
回复
安装程序可以帮你搞定
sunyou 2003-04-04
  • 打赏
  • 举报
回复
; 注册文件类型的.reg文件,用REGEDIT添加到注册表即可,
; 此 .REG 文件可由你的应用程序的安装程序(setup)使用。
; 也可以用
; CWinApp::RegisterShellFileTypes 和 COleObjectFactory::UpdateRegistryAll
; 在 InitInstance 中对下列项自动进行注册。
; t0是文件扩展名
; ttt是程序名
HKEY_CLASSES_ROOT\.t0 = 文档类型ID
HKEY_CLASSES_ROOT\ttt.Documenttid\shell\open\command = ttt.EXE %1
HKEY_CLASSES_ROOT\ttt.Documenttid\shell\open\ddeexec = [open("%1")]
HKEY_CLASSES_ROOT\ttt.Documenttid\shell\open\ddeexec\application = ttt
; 注意:此应用程序是可选的
;(默认为“命令”中的应用程序名)
HKEY_CLASSES_ROOT\ttt.Documenttid = 文档类型全称

[HKEY_CLASSES_ROOT\ttt.Documenttid\DefaultIcon]
@="e:\\vcwork\\ttt\\debug\\ttt.exe,1"
skyzxg 2003-04-04
  • 打赏
  • 举报
回复
好象是注册表中
djhdu 2003-04-04
  • 打赏
  • 举报
回复
我没有文档和视图结构,我用的是对话框,我加了上面的代码就出错了!
E17 2003-04-04
  • 打赏
  • 举报
回复
在instance里面
EnableShellOpen()
RegisterShellFileTypes()
qhluo02 2003-04-04
  • 打赏
  • 举报
回复
文件扩展名再注册表中的项是以 (.*)就是以点开头
djhdu 2003-04-04
  • 打赏
  • 举报
回复
[HKEY_CLASSES_ROOT\ttt.Documenttid\DefaultIcon]
@="e:\\vcwork\\ttt\\debug\\ttt.exe,1"
后面的1代表什么呢,我也按照这个样的格式写到注册表里面了,但是图标还是没有换成我的应用程序的图标,这是什么原因啊?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧