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

如何用Delphi創建快捷方式

編輯:Delphi

  由於我們是通過OLE Interface實現此功能的,因此在程序單元的uses語句中要加入ComObj、ActiveX和ShlObj這三個單元。

  在單元的聲明部分加入以下代碼:

  其中,ProgramPath是快捷方式的目標文件的全路徑(包括文件名和路徑);

  ProgramArg是目標文件的參數;LinkPath是快捷方式的全路徑;Descr是對此快捷方式的描述。

  在單元的實現部分加入以下代碼:

procedure CreateLink(ProgramPath, ProgramArg, LinkPath, Descr: String); 

var

AnObj: IUnknown;

ShellLink: IShellLink;

AFile: IPersistFile;

FileName: WideString;

begin

if UpperCase(ExtractFileExt(LinkPath)) 〈〉 ′.LNK′ then //檢查擴展名是否正確

begin

raise Exception.Create(′快捷方式的擴展名必須是 ′′LNK′′!′);/

/若不是則產生異常

end;

try

OleInitialize(nil);//初始化OLE庫,在使用OLE函數前必須調用初始化

AnObj := CreateComObject(CLSID—ShellLink);//根據給定的ClassID生成

一個COM對象,此處是快捷方式

ShellLink := AnObj as IShellLink;//強制轉換為快捷方式接口

AFile := AnObj as IPersistFile;//強制轉換為文件接口

//設置快捷方式屬性,此處只設置了幾個常用的屬性

ShellLink.SetPath(PChar(ProgramPath)); // 快捷方式的目標文件,一般

為可執行文件

ShellLink.SetArguments(PChar(ProgramArg));// 目標文件參數

ShellLink.SetWorkingDirectory(PChar(ExtractFilePath(ProgramPath)))

;//目標文件的工作目錄

ShellLink.SetDescription(PChar(Descr));// 對目標文件的描述

FileName := LinkPath;//把文件名轉換為WideString類型

AFile.Save(PWChar(FileName), False);//保存快捷方式

finally

OleUninitialize;//關閉OLE庫,此函數必須與OleInitialize成對調用

end;

end;

以上編寫了一個通用函數,下面我們用它來創建快捷方式。在窗體中放置一

個按鈕,雙擊按鈕寫入如下代碼即可:

procedure TForm1.Button1Click(Sender: TObject);

var

tmp: array [0..MAX—PATH] of Char;

WinDir: string;

begin

GetWindowsDirectory(tmp,MAX—PATH);

WinDir:=String(tmp);

if Length(WinDir) 〉 3 then

WinDir:=WinDir+′\′;//得到Windows的目錄

//在桌面上放置本程序的快捷方式

CreateLink(ParamStr(0),′′,WinDir+′desktop\′+Application.Tit

le+′.lnk′,′Application.Title′);

end;

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