델파이 팁란을 응용하여 만든 프로시져인데,
바로가기가 생성이 되질 않습니다...
디버깅을 해 보니 정상적으로 되는 것 같은 데... 혹시 뭐가
잘못된 점이 있는지요?...
procedure CreateShortcut(FileName: string; Location: TShortcutType);
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
Directory,
LinkName : string;
WFileName : WideString;
QuickLaunchReg : TRegIniFile;
Reg : TRegistry;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
MySLink.SetPath(PChar(FileName));
// Registry 객체를 생성한다.
Reg := TRegistry.Create;
with Reg do
begin
// 현재의 루트키를 HKEY_CURRENT_USER로 설정한다
RootKey := HKEY_CURRENT_USER;
// 원하는 키를 열도록 합니다.
OpenKey('SoftwareMicroSoftWindowsCurrentVersionExplorerShell Folders', False);
LinkName := ChangeFileExt(FileName, '.lnk');
LinkName := ExtractFileName(LinkName);
case Location of
_DESKTOP : Directory := ReadString('Desktop');
_STARTMENU : Directory := ReadString('Start Menu');
_SENDTO : Directory := ReadString('SendTo');
_FAVORITES : Directory := ReadString('Favorites');
_STARTMENUPROGS: Directory := ReadString('Programs');
_STARTMENUINI : Directory := ReadString('StartUp');
_DOCS : Directory := ReadString('Personal');
end;
if Directory <> '' then
begin
WFileName := Directory + '' + LinkName;
MyPFile.Save(PWChar(WFileName), False);
end;
CloseKey;
Free;
end;
end;
WFileName을 확인해보세요...
WFileName := Directory + '' + LinkName;
위와 같이 바뀌어야 할거 같은데...
^^ 항상 즐코하세요...