熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

如何用Delphi創建快捷方式

2013-11-23 17:38:50  來源: Delphi編程 

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

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

procedure CreateLink(ProgramPath ProgramArg LinkPath Descr: String);

  其中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 ExceptionCreate(′快捷方式的擴展名必須是 ′′LNK′′!′);/

/若不是則產生異常

end;

try

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

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

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

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

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

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

ShellLinkSetPath(PChar(ProgramPath)); // 快捷方式的目標文件一般

為可執行文件

ShellLinkSetArguments(PChar(ProgramArg));// 目標文件參數

ShellLinkSetWorkingDirectory(PChar(ExtractFilePath(ProgramPath)))

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

ShellLinkSetDescription(PChar(Descr));// 對目標文件的描述

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

AFileSave(PWChar(FileName) False);//保存快捷方式

finally

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

end;

end;

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

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

procedure TFormButtonClick(Sender: TObject);

var

tmp: array [MAX—PATH] of Char;

WinDir: string;

begin

GetWindowsDirectory(tmpMAX—PATH);

WinDir:=String(tmp);

if Length(WinDir) 〉 then

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

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

CreateLink(ParamStr()′′WinDir+′desktop\′+ApplicationTit

le+′lnk′′ApplicationTitle′);

end;


From:http://tw.wingwit.com/Article/program/Delphi/201311/24825.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.