社区
C++ Builder
帖子详情
请问如何为自定义的文件类型定义打开方式(修改注册表)???
robbyzi
2004-04-11 09:26:31
加精
例如,我做了一个软件,
并为该软件定义某种扩展名,如*.abc
那什么要如何做,才能够使到我双击*.abc的文件,它会自动启动该软件并打开。
谢了!!!
...全文
607
13
打赏
收藏
请问如何为自定义的文件类型定义打开方式(修改注册表)???
例如,我做了一个软件, 并为该软件定义某种扩展名,如*.abc 那什么要如何做,才能够使到我双击*.abc的文件,它会自动启动该软件并打开。 谢了!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yesry
2004-07-27
打赏
举报
回复
想获得双击后的文件名,应该使用GetCommandLIne()函数获得命令行参数,然后分析字符串即可。
JetKingLau
2004-04-12
打赏
举报
回复
如果你的应用程序文件(或路径)包含空格,可以将
Reg->WriteString("", file+" " + "\"%1\"");//关联到应用程序
改为
Reg->WriteString("", AnsiString("\"")+file+"\" " + "\"%1\"");//关联到应用程序
JetKingLau
2004-04-12
打赏
举报
回复
CreateAssociateType(".abc", "FileTypeContent", "D:\\Temp\\abc.exe");
//---------------------------------------------------------------------------
void CreateAssociateType(AnsiString ext, AnsiString type, AnsiString file)
{
TRegistry *Reg = new TRegistry;
try {
Reg->RootKey = HKEY_CLASSES_ROOT;
if( Reg->OpenKey(AnsiString("\\") + ext, true) ) {
Reg->WriteString("", type);//注册文件类型
Reg->CloseKey();
}
Reg->RootKey = HKEY_CLASSES_ROOT;
if( Reg->OpenKey(AnsiString("\\")+type, true) ) {
Reg->WriteString("", type);//文件类型
Reg->CloseKey();
}
Reg->RootKey = HKEY_CLASSES_ROOT;
if( Reg->OpenKey(AnsiString("\\")+type+"\\shell\\open\\command", true) ) {
Reg->WriteString("", file+" " + "\"%1\"");//关联到应用程序
Reg->CloseKey();
}
}
__finally {
delete Reg;
}
}
//---------------------------------------------------------------------------
robbyzi
2004-04-12
打赏
举报
回复
偶用了时差兄的代码,
的确是启动了关联程序,
万分感谢。
但是,还存在一个问题,
就是程序启动了之后,它并没有打开我所双击的文件。
也就是说只启动但不运行。
偶知道在BCB的winmain中
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR , int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
……
LPSTR是返回双击文件的路径,但是却不知道在Form中如何调用,
该变量是如何传递到Form中的????
RamjetZhang
2004-04-12
打赏
举报
回复
举例: txt文件后缀名.txt
所以:
HKEY_CLASSES_ROOT\.txt default value :txtfile;
说明,txt对应的是txtfile;
然后txtfile的默认shell verb: open的command是notepad.exe "%1", %1表示命令行第一个参数(即文件名);
HKEY_CLASSES_ROOT\txtfile\shell\open\command: %SystemRoot%\system32\NOTEPAD.EXE "%1"
(在.txt处直接写shell verb也可)
空中猎手
2004-04-11
打赏
举报
回复
注册表:
HKey_Current_user/software/Microsoft/Windows/Explorer/FileExts
Key_User/Software/Microsoft/Windows/Explorer/FileExts
里面看一看,可能是在这里改
Visual.C#.编程精彩百例
实例90 在“新建”中添加自己的
文件类型
实例91 显示Exchange软件的客户名称 实例92 读取Windows
注册表
信息 实例93
自
定义
AboutBox组件 实例94
自
定义
控件及应用 实例95 Java与C#混合编程的应用 实例96 C#与...
JAVA上百实例源码以及开源项目
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,
定义
写到文件的信息、
定义
文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
C#对Windows
注册表
的操作
配置环境要求:1、操作系统:win7 32/64位 2、开发环境:Visual studio ... 授课特色:以实例讲解C#对Windows
注册表
的操作,包括获取、写入、
修改
、删除
注册表
等操作
C# 注册
自
定义
文件类型
实现
自
定义
文件类型
关联默认应用程序
如果没有向Windows
注册表
注册该
文件类型
,那么.osf文件的图标将是windows的文件默认图标,并且你双击一个a.osf文件,也不会自动启动应用程序来加载a.osf文件。如何使.osf文件的图标变成我自己喜爱的图标、如何完成像...
鼠标右键设置
自
定义
文件
打开方式
鼠标右键设置
自
定义
文件
打开方式
这里以设置以Sublime Text
打开方式
为例 win+R 打开运行 输入regedit进入到
注册表
编辑器,如图: 依次在左侧打开选项栏 HKEY_CLASSES_ROOT*\shell 鼠标右击shell,新建项–...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章