• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • 用程序实现文件的关联

      文件关联在程序设计中有着重要的作用,它的目的是要实现某种扩展名的文件由相应的应用程序来打开,有许多的软件,特别试那些媒体播放软件,大都实现了文件的关联,可以想象,一个与文件相关的软件连文件关联就没有做到,它还如何混下去。另外,由于一般应用程序都有自己特定扩展名的数据文件,这也要求软件编制者应在程序中实现自动关联而不能由用户手工去实现。那如何实现文件的关联呢?实现文件关联的核心是对注册表的操作, 所有的文件关联都在HKEY—CLASSES— ROOT 下面, 要实现文件关联必须在HKEY—CLASSES—ROOT 中增加两个键值,

      BCB不让应用程序显示在任务栏上的方法
      用C++ Builder实现VFP数据库开发,用BCB开发有身份认证功能的Email程序,BCB动态生成30个按钮对象,BCB不让应用程序显示在任务栏上的方法,利用C++Builder自定义Windows窗体“系统菜单”,用程序实现文件的关联,数字小键盘指法练习,用C++ Builder开发多层数据库应用程序,在C++ Builder6上使用Boost正则表达式库,C++Builder使用经验谈,用C++ Builder对图像进行特殊效果处理,CBuilder中帮助文件的连接及显示讨论,BCB客户端tuxedo开发实例,在BCB下使用GExperts的Debug功能,BCB编写DLL终极手册,在拷贝、删除文件时显示飞行的文件夹动画,用BCB实现超星格式转换为BMP格式,在C++Builder中使用Compress Html Help,在bcb里实现像Winamp那样具有吸附效果的磁性窗口,利用BCB巧建WEB浏览器
      C++ Builder

      一是和文件扩展名对应的类型说明,二是对这种类型文件的操作所需要执行的应用程序。下面范例可以说明如何实现文件的关联,本例的功能是将用户指定扩展名的文件与用户指定的应用程序相关联,双击此种类型的文件时就可以由相应的应用程序来打开。该范例程序是用Borland C++ Builder实现的,部分代码如下:

      进行文件的关联:

      void __fastcall TForm1::btnAssoClick(TObject *Sender)

      {

          TRegistry *Reg = new TRegistry;

          Reg->RootKey=HKEY_CLASSES_ROOT;

          try

          {

              Reg->OpenKey(extDoWith(edtExt->Text),true);

              Reg->WriteString("",appDoWith(edtAppPath->Text));

              Reg->CloseKey();

              Reg->OpenKey(appDoWith(edtAppPath->Text)+"\\shell\\open\\command",true);

              Reg->WriteString("",edtAppPath->Text);

              Reg->CloseKey();   

          }

          __finally

          {

              delete Reg;

          }

      }

      以上代码实现了文件的关联,它用到了C++Builder提供Tregistry组件,它提供了许多用于操作注册表的方法,如:OpenKey打开注册表的某个键,WriteString往注册表了写值等,这就避免了去使用比较麻烦的RegCreateKey、RegSetValue等Win32API来完成同样的功能。 而extDoWith(),appDoWith()分别为自定义的函数它们的功能是设置关联文件的扩展名和取得应用程序的文件名,代码如下:

      extDoWith()函数:

      AnsiString __fastcall TForm1::extDoWith(AnsiString str)

      {

          //TODO: Add your source code here

              //在扩展名前加上.符号

          if (str.SubString(0,1)!=".")

          {

              str="."+str;

          }

          return str;

      }

      appDoWith()函数:

      AnsiString __fastcall TForm1::appDoWith(AnsiString appPath)

      {

          //TODO: Add your source code here

              //取得应用程序的文件名,不带扩展名

          int length=appPath.Length();

          int index=appPath.LastDelimiter("\\");

          appPath=appPath.SubString(index+1,length-index+1);

          index=appPath.LastDelimiter(".");

          appPath=appPath.SubString(0,index-1);

          return appPath;

      }

      这样就实现了文件类型与应用程序的关联,如果您对本程序感兴趣的话,可以到http://www.zccfamily.com/zqget/ 网址下载该程序的工程文件。如果你有与我交流的想法,我的联系方式:email:zqget@msn.com

      利用C++Builder自定义Windows窗体“系统菜单”
      用C++ Builder实现VFP数据库开发,用BCB开发有身份认证功能的Email程序,BCB动态生成30个按钮对象,BCB不让应用程序显示在任务栏上的方法,利用C++Builder自定义Windows窗体“系统菜单”,用程序实现文件的关联,数字小键盘指法练习,用C++ Builder开发多层数据库应用程序,在C++ Builder6上使用Boost正则表达式库,C++Builder使用经验谈,用C++ Builder对图像进行特殊效果处理,CBuilder中帮助文件的连接及显示讨论,BCB客户端tuxedo开发实例,在BCB下使用GExperts的Debug功能,BCB编写DLL终极手册,在拷贝、删除文件时显示飞行的文件夹动画,用BCB实现超星格式转换为BMP格式,在C++Builder中使用Compress Html Help,在bcb里实现像Winamp那样具有吸附效果的磁性窗口,利用BCB巧建WEB浏览器
      C++ Builder

    • 0
    • 0
    • 0
    • 94
    • 单栏布局 侧栏位置: