社区
C++ Builder
帖子详情
怎么设置一个文件的默认打开方式。(在程序中实现)
frankxht
2003-03-26 11:34:40
是向注册表里写什么东东?
...全文
2322
6
打赏
收藏
怎么设置一个文件的默认打开方式。(在程序中实现)
是向注册表里写什么东东?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuv2002
2003-03-31
打赏
举报
回复
我以.txt文件为例
用regedit.exe打开注册表
到HKEY_CLASSES_ROOT主键
它下面有一长串的".*"的键值
找到.txt
它有默认值为"txtfile"
再在HKEY_CLASSES_ROOT下面搜索名为"txtfile"的主键
找到了
它有子键"DefaultIcon" 默认值为"%SystemRoot%\system32\shell32.dll,-152"
意思是文件的默认图标从shell32.dll 得来 -152为图标序号
另一子键"shell" 这个是关键了
"Shell"键下面有
"open"子键: 里面有“command” 子键其默认值就是对.txt文件的默认打开方式
值为%SystemRoot%\system32\NOTEPAD.EXE %1
另外"open"下面还有"print" 子键,就是打印的操作方式了
这样应该很清楚啦吧
xuv2002
2003-03-26
打赏
举报
回复
手动改就用google 去改吧
其实我给你的函数已经很清楚了
你随便建一个工程
然后执行一下函数不就可以了
例如txt的默认操作
RegisterExt(".txt","Text files","C:\\Winnt\\notpad.exe");
frankxht
2003-03-26
打赏
举报
回复
要手动改注册表呢?怎么改?
xuv2002
2003-03-26
打赏
举报
回复
给你一个例子吧
ext 是你要注册的文件后缀名,desc 是 描述 exe 是你默认打开的执行程序的文件名
如
RegisterExt(".txt;.tixt","My Text",Application->ExeName.c_str());
ext 可以用';'隔开多个注册
bool RegisterExt(const char* ext, const char* desc, const char* exe)
{
unsigned long Size = 0 ;
char buf [255] , Ext [17];
memset(Ext,17,0); memset(buf,0,255);
if (!ext || !ext[0] || !desc || !desc[0] || !exe || !exe[0]) return false;
strncpy(buf, exe, 3); buf[3] = '\0';
if (GetDriveType(buf)!=DRIVE_FIXED) return false;
TRegistry * Reg=new TRegistry();
Reg->RootKey=HKEY_CLASSES_ROOT;
while(ext) {
const char* s = strchr(ext, ';');
Size = s ? int(s-ext) : strlen(ext);
if (Size >= sizeof(Ext)) Size = sizeof(Ext) - 1;
strncpy(Ext, ext, Size);
Ext[Size] = '\0';
ext = s ? s+1 : NULL;
Size = sizeof(buf); buf[0] = '\0';
Reg->OpenKey(Ext,true);
Reg->WriteString("",desc);
Reg->CloseKey();
}
AnsiString Desc = desc;
if(!Reg->OpenKey(Desc+"\\DefaultIcon",true)){
Reg->CloseKey(); delete Reg; return false;
}
sprintf(buf,"%s,0",exe);
Reg->WriteString("",buf);
Reg->CloseKey();
if(!Reg->OpenKey(Desc+"\\Shell\\Open\\Command",true)){
Reg->CloseKey(); delete Reg; return false;
}
sprintf(buf,"%s %%1",exe);
Reg->WriteString("",buf);
Reg->CloseKey();
delete Reg; return true;
}
frankxht
2003-03-26
打赏
举报
回复
我的意思是,想在注册表里查看一下它的位置。
xuv2002
2003-03-26
打赏
举报
回复
要手动?
用资源管理器吧,很简单
点开资源管理器的文件夹选项
里面有文件类型,点开它
若要新建,点新建
输入你要注册的后缀名如".bik"
然后点高级按钮,出来一个对话框
最上边的是文件类型的描述,我写成"Bik Vedio"
里面有个操作列表框
点新建,然后在操作编辑框中输入"Open"。 注:这个是Windows对文件操作打开的默认值
然后输入你要用来打开该文件类型的程序的名称
如"c:\\bik\\binkplay.exe %1"
%1 是参数,当你打开*.bik文件时,自动将文件名当作参数传给执行文件了
这样你该明白了
呵呵
DirectX修复工具 V3.3增强 绿色版
开启简约模式的方法是:
打开
程序所在目录下的“Settings.ini”
文件
(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自主选择要修复...
如何
设置
文件
的
默认
打开
方式
可以通过如下
方式
实现
对
文件
的
默认
打开
方式
设置
: 1、点击选中
文件
。 2、右键,
打开
属性 3、点击
打开
方式
后的更改 4、选择
默认
打开
使用的应用程序 5、点击右下角的应用 然后电脑中的所有的同类型的
文件
都可以
默认
用...
文件
类型
打开
怎么改成计算机程序,电脑怎样修改
文件
默认
打开
方式
我们在使用电脑的时候,经常会遇到一个
文件
拥有多种
打开
方式
,当
默认
开启的程序并非我们想要的程序时我们就希望去修改
设置
,那么电脑怎样修改
文件
默认
打开
方式
呢?下面学习啦小编就为大家带来了电脑修改
文件
默认
打开
方式
...
Windows
设置
文件
默认
打开
方式
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan ...今天在此为大家介绍一招
设置
文件
的
默认
打开
方式
。 【
设置
方式
】 一、重复操作: 1.每次
打开
一个计算机未
设置
默认
打开
方式
的...
文件
的
打开
方式
怎么用计算机,电脑怎样修改
文件
默认
打开
方式
我们在使用电脑的时候,经常会遇到一个
文件
拥有多种
打开
方式
,当
默认
开启的程序并非我们想要的程序时我们就希望去修改
设置
,那么呢?下面小编就为大家带来了电脑修改
文件
默认
打开
方式
的方法。电脑修改
文件
默认
打开
方式
...
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章