unit shjAssociateFileType;

interface

uses Windows, Registry;

{将文件类型strFileExtension与程序strExeFileName相关联,strDiscription为文件类型说明}
function AssignToProgram(const strFileExtension, strDiscription, strExeFileName: string ): boolean;

implementation

{将文件类型strFileExtension与程序strExeFileName相关联,strDiscription为文件类型说明}
function AssignToProgram(const strFileExtension, strDiscription, strExeFileName: string ): boolean;
var
  regFile: TRegistry;
begin
  //建立一个Registry实例
  regFile := TRegistry.Create;

with regFile do
  begin
    //设置根键值为HKEY_CLASSES_ROOT
    RootKey := HKEY_CLASSES_ROOT;

//创建或者打开扩展名自动关联注册键
    OpenKey( '.' + strFileExtension, true);

//设置扩展名自动关联
    WriteString('', strFileExtension + '_Auto_File');

//关闭键
    CloseKey;

//创建或者打开打开自动关联键
    OpenKey(strFileExtension + '_Auto_File', true);

//设置文件类型说明
    WriteString('', strDiscription);

//关闭键
    CloseKey;

//创建或打开关联程序键
    OpenKey(strFileExtension + '_Auto_File\shell\open\command', true);

//设置关联程序(注意:%1加上双引号,可以解决文件路径中含空格的问题)
    WriteString('',strExeFileName + ' "%1"');

//关闭键
    CloseKey;

//打开默认图标键
    OpenKey(strFileExtension + '_Auto_File\defaulticon',true);

//关联默认图标
    WriteString('', strExeFileName + ',0');

//释放
    Free;

Result := True;
  end;
end;

end.

Delphi 让自己的软件实现双击打开文件 转的更多相关文章

  1. xmind 8 便携版:关联文件后,双击打开文件,在当前文件夹产生configuration子文件的问题解决办法

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.xmind] @="XMind.Workbook.3" " ...

  2. vs2013修改为双击打开文件

    vs2012和vs2013默认是单击打开文件,让人突然就不习惯了,各种不爽. 修改方法: 工具-选项-环境-选项卡和窗口-不勾选允许在预览选项卡中打开新文件.

  3. Idea 设置单击打开文件或者双击打开文件、自动定位文件所在的位置

    以下定位,框架下,打开文件的点击方式,以及点击标签导航页上的已打开文件定位到展开路径,如下图:

  4. IntelliJ Idea设置单击打开文件或者双击打开文件、自动定位文件所在的位置

  5. 【温故Delphi】双击工程文件打开软件

    问题描述 大部分软件都有鼠标双击文件,就能打开所关联的软件并打开所选工程,这是如何做到的呢? 把文件关联到一个程序中,双击文件来启动程序,那么这个文件名称就是这个程序的命令行的一个参数. 所以要想实现 ...

  6. Delphi 实现最近打开文件记录菜单

    unit UntOpenMenu; //download by http://wwww.NewXing.com interface uses Windows, Messages, SysUtils, ...

  7. excel文件双击打开空白

    excel文件双击打开之后进入软件,没有去读文件 一.现象描述 打开现象如下所示,只有excel模板,看不到excel中的表格模板. 二.想要打开文件 (1)在软件的文件--->打开--> ...

  8. 20160307 - 双击打开 Js 扩展名的附件要保持留心

    Windows Script Host 技术是一门很老的技术,它让 Windows 的自带脚本 VBScript 和 JScript 可以操作 Windows ActiveX 对象,这样的脚本具有本地 ...

  9. delphi调用外部程序打开文件

    delphi调用外部程序打开文件 ShellExecute的各种用法 一.利用系统默认的邮件收发器发送电子邮件 Uses ..., ShellAPI; Var lpHwnd: HWND; lpOper ...

随机推荐

  1. 系统学习sqlserver2012 一

    一:使用管理服务器和脚本 在试图菜单中选族已注册的服务器,可以直接切换登录服务器 在试图菜单中选择解决方案资源管理器,可以直接打开之前保存的脚本,方便管理和执行 这两种保存时,都可以分组保存,见下图

  2. 欧拉工程第70题:Totient permutation

    题目链接 和上面几题差不多的 Euler's Totient function, φ(n) [sometimes called the phi function]:小于等于n的数并且和n是互质的数的个 ...

  3. Use windows batch script to create menu

    Background Recently, I find that we need  to  type some very long gradle commands to run build, chec ...

  4. 【mongoDB基础篇②】PHP-mongo扩展的编译以及使用

    安装PHP-mongo扩展 安装php-mongo扩展和安装其他php扩展的步骤一样: #1.首先上http://pecl.php.net上面搜索mongo,得到下载地址 wget http://pe ...

  5. MIT算法导论——第五讲.Linear Time Sort

    本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. ...

  6. Java API —— List接口&ListIterator接口

    1.List接口概述         有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索 ...

  7. UVa 1402 Runtime Error 伸展树

    Runtime Error 到现在连样例也跑不出来!!! 调试了一晚上快要死了…… 知道错在哪里但是不会改,代码先扔在这里吧.看来不能太依赖模板啊orz…… #include <cstdio&g ...

  8. .net 生成拼音码与五笔码

    首先加入配置文件: <?xml version="1.0" encoding="utf-8" ?> <CodeConfig> <S ...

  9. Android Things:Raspberry Pi 3 B 刷入 Android Things

    参考文章: http://www.andtuts.com/a-beginners-guide-to-raspberry-pi-3-b-and-android-things/?utm_source=An ...

  10. Servlet错误一览

    错误:HTTP Status 405 - HTTP method POST is not supported by this URL 原因:没有提供doPost方法 错误:控制器跳转到空白界面 原因: ...