程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 注冊快捷方式

注冊快捷方式

編輯:Delphi
這裡我們用到了com對象
  我要解釋一下
  com(compent  object model)其實是microsoft提出的組件標准,它定義了組件和應用程序之間進行通信的標准,同時提供了組件程序運行時所需要的環境。這是書上講的,現在我用口頭語客串幾句。Com可以用不同的語言編可以實現通信的效果,可以把它們看成一些二進制的可執行程序。
  下面就是注冊快捷方式
  type
  ShortcutType = (ST_DESKTOP, ST_SENDTO, ST_QUICKLAUNCH, ST_STARTMENU);//定義一個數據類型

  

  
  procedure CreateShortcut(FileName :string; Description :string;
    arguements :string; Location :ShortcutType);
  var
    cObj :IUnknown;
    sLink :IShellLink;
    pFile :IPersistFile;
    sDir :string;
    lName :string;
    spath :string;
    wFileName :WideString;
    mReg :TRegistry;
    key :string;
    tmp :string;
  begin
    cObj :=CreateComObject(CLSID_ShellLink); //創建COM對象
    sLink :=cObj as IShellLink; //COM對象轉化為IShellLink型接口
    pFile :=cObj as IPersistFile; //COM對象轉化為IPersistFile型接口

    //獲取路徑
    sPath :=ExtractFilePath(FileName);
    with sLink do begin
     SetPath(PChar(FileName)); //設置執行文件名
     SetArguments(PChar(arguements)); //設置執行參數
     SetDescription(Pchar(Description)); //設置描述信息
     SetWorkingDirectory(PChar(sPath)); //設置工作路徑,即執行程序所在目錄
    end;

    //獲取各快捷方式的實際目錄
    mReg :=TRegistry.Create;
    with mReg do begin
      RootKey :=HKEY_CURRENT_USER;

      key :=REGSTR_PATH_EXPLORER; //Delphi在單元RegStr中定義的常量
      tmp :=key + 'Shell Folders';

      OpenKey(tmp, false);
      case Location of
        ST_DESKTOP: sDir :=ReadString('Desktop');
        ST_SENDTO: sDir :=ReadString('SendTo');
        ST_STARTMENU: sDir :=ReadString('Start Menu');
        ST_QUICKLAUNCH:
        begin
          sDir :=ReadString('AppData');
          sDir :=sDir + 'MicrosoftInternet ExplorerQuick Launch';
        end;
      end;

      //生成快捷方式文件名
      lName :=ChangeFileExt(FileName, '.Lnk');
      lName :=ExtractFileName(lName);
      if sDir<>'' then
      begin
        //生成快捷方式全路徑名
        wFileName :=sDir + '' + lName;
        //保存生成的快捷方式文件
        pFile.Save(PWChar(wFileName), false);
      end;

      Free;
    end;
  end;
  上面聲明了一個過程
  下面應用它
  var
    fName :string;
    fDesc :string;
    fArgu :string;
  begin
    fName :=Application.ExeName;
    fDesc :='Delphi 7.0 創建的快捷方式--桌面';
    fArgu :='無參數';
    CreateShortcut(fName,fDesc,fArgu, ST_DESKTOP);
  end;
  procedure TForm1.SpeedButton2Click(Sender: TObject);
  var
    fName :string;
    fDesc :string;
    fArgu :string;
  begin
    fName :=Application.ExeName;
    fDesc :='Delphi 7.0 創建的快捷方式--發送到。。。';
    fArgu :='無參數';
    CreateShortcut(fName,fDesc,fArgu, ST_SENDTO);
  end;

  procedure TForm1.SpeedButton3Click(Sender: TObject);
  var
    fName :string;
    fDesc :string;
    fArgu :string;
  begin
    fName :=Application.ExeName;
    fDesc :='Delphi 7.0 創建的快捷方式--開始菜單';
    fArgu :='無參數';
    CreateShortcut(fName,fDesc,fArgu, ST_STARTMENU);

  end;

  procedure TForm1.SpeedButton4Click(Sender: TObject);
  var
    fName :string;
    fDesc :string;
    fArgu :string;
  begin
    fName :=Application.ExeName;
    fDesc :='Delphi 7.0 創建的快捷方式--快速啟動';
    fArgu :='無參數';
    CreateShortcut(fName,fDesc,fArgu, ST_QUICKLAUNCH);
  end;

  procedure TForm1.SpeedButton5Click(Sender: TObject);
  var
    sName :string;
    sAddress :string;
  begin
    sName :='P哥網';
    sAddress :='http://www.pggpjj.com';
    CreateInternetShortcut(sName, sAddress);
  end;
  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved