zoukankan      html  css  js  c++  java
  • registry 为程序创建快捷方式

    功能说明:为程序创建快捷方式 
    uses registry,ActiveX,Comobj,Shlobj;

    const
      IID_IPersistFile: TGUID=
      (D1:$0000010B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46));
    function GetShellFolder (constfolder:string):string;
    const
      cWin32='SOFTWARE\Microsoft\Windows\CurrentVersion';
      cSHellPrefix='\Explorer\Shell Folders';
    var
      r:TRegistry;
    begin
      Result:='';
      r:=TRegistry.Create;
     //创建对象
      try
        r.Rootkey:=HKEY_CURRENT_USER;
        //只要是Windows95及其以后版本,此处都一样
        ifr.OpenKey (cWin32+cShellPrefix, False)then
        //打开键,开始读取
         Result:=r.ReadString (folder)+'\';
      finally
        r.Free;
       //释放创建的对象
      end;
    end;

    function CreateLink(aPathObj,aPathLink,aDesc:string): boolean;
    var
      sLink: IShellLink;
      PersFile: IPersistFile;
    begin
      Result:=false;
      ifSUCCEEDED(CoCreateInstance(CLSID_ShellLink,nil,
                   CLSCTX_INPROC_SERVER, IID_IShellLinkA, sLink))then
     //创建接口实例成功
      begin
        sLink.SetPath(PChar(aPathObj));
      //设置要创建快捷方式的程序路径及其文件名
        sLink.SetDescription(PChar(aDesc));
        //设置对快捷方式的描述信息
        if SUCCEEDED(sLink.QueryInterface(IID_IPersistFile,PersFile))then
        //查询接口成功
        begin
          PersFile.Save(StringToOLEStr(aPathLink),TRUE);
          //保存快捷方式
          Result:=true;
        end;
      end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if not CreateLink(Application.ExeName,
                        GetShellFolder('Desktop')+'mylink.lnk','我的快捷方式')then
     //调用GetShellFolder获取系统桌面文件夹路径
      begin
        Showmessage('创建快捷方式失败');
      end;
    end;




  • 相关阅读:
    C# DataTable 导出到 Excel 的两种方法
    C# Unicode编码解码
    msbuild不是内部或外部命令
    发布web项目时,关于未能加载文件或程序集或它的某一个依赖项。拒绝访问的问题
    hithub中文排行榜
    【MAC工具】手机抓包工具之 —— whistle
    vueApp打包
    TortoiseSVN设置Beyond Compare为版本比较、差异合并工具
    微信公众号开发
    DataTable转List,DataTable转为Model对象帮助类
  • 原文地址:https://www.cnblogs.com/xe2011/p/2531631.html
Copyright © 2011-2022 走看看