Q&A

  • 단축아이콘등록이 안돼요
단축아이콘을 만들고 싶어서 한델에서 검색하여

다음과 같은 함수를 만들었습니다.

그런데 막상적용하고 보니

단축아이콘은 만들어 지는데

단축아이콘으로 실행이 되지 않습니다. 아이콘도 이상하구요

그래서 단축아이콘의 등록정보를 보았더니

바로가기 텝에서 대상의 경로앞에 공백이 한자리 있더군요

그레서 공백을 없애 주었더니

제대로 작동이 됩니다.

이것저것 프로그램상에서 해보았지만 헛고생이었거든요

어떤 오류를 범한건지 가르쳐 주세요

감사합니다.







procedure Tmain.ShotCut(Dir_name : string ; file_name : string ;program_group: string; program_name: string);

var

MyObject : IUnknown;

MySLink : IShellLink;

MyPFile : IPersistFile;

Directory : String;

WFileName : WideString;

MyReg : TRegIniFile;

FULL_PATH : pchar;

begin

MyObject := CreateComObject(CLSID_ShellLink);

MySLink := MyObject as IShellLink;

MyPFile := MyObject as IPersistFile;



with MySLink do

begin



FULL_PATH := pchar(DIR_NAME +''+ FILE_NAME );

SetArguments(FULL_PATH); // 파라미터로 지정

SetPath(PCHAR(FILE_NAME)); // shortcut의 실행파일명 지정

SetWorkingDirectory(PCHAR(DIR_NAME)); // 작업디렉토리 지정

//SetPath('notepad.exe');

//SetWorkingDirectory('c:dp_ini');

end;



// showmessage(dir_name + file_name);



//레지스트리 경로

MyReg := TRegIniFile.Create(

'SoftwareMicroSoftWindowsCurrentVersionExplorer');



// desktop 위에 shortcut을 놓기위한 코드

// Directory := MyReg.ReadString('Shell Folders','Desktop','');



// 만약 시작메뉴에 shortcut을 넣으려면 아래 예제처럼

//programs는 프로그램메뉴, desktop는 바탕화면, start memu는 시작메뉴에 추가

program_group := '' + program_name ;

// Directory := MyReg.ReadString('Shell Folders','Programs','') + 'Whoa!';

Directory := MyReg.ReadString('Shell Folders','Desktop','');

// Directory := MyReg.ReadString('Shell Folders','Programs','') + program_group;

CreateDir(Directory);

program_name := '' + program_name + '.lnk';

// WFileName := Directory+'test.lnk'; // link 파일 만들기

wfilename := directory + program_name ;

MyPFile.Save(PWChar(WFileName),False);

MyReg.Free;



end;

0  COMMENTS