delphi 写入注册表

{
关键字=写入注册表 说明url类
采集软件=MKM - 我的知识管理
采集日期=2023-11-23 21:41:53
数字签名=BCF567C6895F1E56C9194A8E4FF2652B
}

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, ComCtrls,
Registry, shlobj, OleCtrls, SHDocVw, IdBaseComponent,
IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP, ExtCtrls,
IdAntiFreezeBase,
IdAntiFreeze, jpeg, ScktComp;

uses
wininet;

procedure regURL; //写入注册表,说明url类
var
reg: TRegistry;
strtmp: string;
strfile: string;
s: string;
bisfirst: boolean;
begin
{写入注册表 说明url类}
{
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\TooBubble]
“URL Protocol”=“c:\test.exe”
@=“ToobubbleProtocol”

[HKEY_CLASSES_ROOT\TooBubble\DefaultIcon]
@=“c:\test.exe,0”

[HKEY_CLASSES_ROOT\TooBubble\shell]

[HKEY_CLASSES_ROOT\TooBubble\shell\open]

[HKEY_CLASSES_ROOT\TooBubble\shell\open\command]
@="“c:\test.exe” “%1"”

}
try //v80
bisfirst := FALSE; //缺省认为不是第一次运行
strfile := lowercase(Application.ExeName);
reg := TRegistry.Create;

reg.RootKey := HKEY_CLASSES_ROOT; //HKEY_CLASSES_ROOT\指定要操作的主键是

s := 'jjorder'; //指定要操作的key
if reg.OpenKey(s, true) then begin
  //v73
  {增加对与初次使用程序的判断}
  strtmp := lowercase(reg.ReadString('')); //读取关联信息
  if strtmp <> lowercase('jjorderProtocol') then begin // 表示是初次运行本程序
    //给用户一个提示
    bisfirst := true;
    showmessage('提示: a订单打印功能,需要修改注册表URL协议关联。');
  end;
  {增加对与初次使用程序的判断}
  reg.WriteString('', 'jjorderProtocol'); //写入asc字串到键值
  reg.WriteString('URL Protocol', strfile);
  reg.CloseKey;
end; {openkey 里面那个true参数,表示,如果发现key不存在,就自动创建}

s := 'jjorder\shell\open\command';
if reg.OpenKey(s, true) then begin
  strfile := lowercase(Application.ExeName);
  strfile := '"' + strfile + '" "%1"';
  strtmp := lowercase(reg.ReadString('')); //读取关联信息

  if strtmp = strfile then begin //表示ok  没有搬过家
    //      showmessage('已经注册过了');
    reg.CloseKey;
    reg.Free;
  end
  else begin //被搬家了 ,需要重新注册路径
    //用于打开.sos文件的可执行程序
    reg.WriteString('', '"' + Application.ExeName + '" "%1"');
    reg.CloseKey;
    reg.OpenKey('jjorder\DefaultIcon', true);
    //取当前可执行程序的图标为.sos文件的图标
    reg.WriteString('', '' + Application.ExeName + ',0'); //0
    reg.CloseKey;
    reg.Free;

    //立即刷新 ,使得修改立即生效
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
  end;

  //v73

{增加对与初次使用程序的判断}
if bisfirst then begin // 表示是初次运行本程序
//给用户一个提示
showmessage(‘提示:注册表URL协议关联。- OK’);
end;
{增加对与初次使用程序的判断}

end; //

except //v80
end;

end;

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值