kkuzil.own@gmail.com

Posted
Filed under Development/Delphi

단축아이콘 만들기
출처 : 델파이 3000

아래 소스는 바탕화면, 시작메뉴, 보내기 에 단축아이콘을 만드는 함수입니다.

사용예는 첨부파일 참조


procedure CreateShortcut(FileName: string; Location: ShortcutType);
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
Directory,
LinkName : string;
WFileName : WideString;
MyReg,
QuickLaunchReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;

MySLink.SetPath(PChar(FileName));

MyReg := TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\Explorer');
try
  LinkName := ChangeFileExt(FileName, '.lnk');
  LinkName := ExtractFileName(LinkName);
  case Location of
    _DESKTOP    : Directory := MyReg.ReadString('Shell Folders', 'Desktop', ''); // 바탕화면
    _STARTMENU  : Directory := MyReg.ReadString('Shell Folders', 'Start Menu', '');// 시작메뉴
    _SENDTO     : Directory := MyReg.ReadString('Shell Folders', 'SendTo', '');  // 보내기
    _QUICKLAUNCH:   // 디렉토리가 유동적(사용자에 따라)
  begin
       QuickLaunchReg := TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\GrpConv');
       try
         Directory := QuickLaunchReg.ReadString('MapGroups', 'Quick Launch', '');
       finally
         QuickLaunchReg.Free;
       end;
     end;
 end;

 if Directory <> '' then
   begin
     WFileName := Directory + '\' + LinkName;
     MyPFile.Save(PWChar(WFileName), False);
   end;
finally
  MyReg.Free;
end;
end;  

2007/09/20 17:54 2007/09/20 17:54