2011년 3월 15일 화요일

바탕화면에 바로가기 아이콘 만들기

인스톨을 수작업으로 하기 위해 필요한 정보였음.
버튼을 클릭하면 바탕화면에 test.lnk 라는 바로가기 파일을 만들고,
test.lnk 는 더블클릭하여 실행하면 win.ini 를 메모장에 열어주는 일을 하는 예제소스임.
// 아래의 것들이 uses 에 추가되어야 함
uses ShlObj, ShFolder, ActiveX, ComObj;
// 시스템폴더의 경로를 반환하는 함수
function GetSystemDirectory(Dir: Integer): String;
var Path: PChar;
begin
Result:='';

GetMem(Path, MAX_PATH);

SHGetFolderPath(0, Dir, 0, 0, Path);

Result:=Copy(Path, 0, Length(Path));

FreeMem(Path);
end;
// 버튼클릭이벤트 - 바로가기파일 생성
procedure TForm1.Button1Click(Sender: TObject);
var

MyObject: IUnknown;

MySLink: IShellLink;

MyPFile: IPersistFile;
begin

MyObject:=CreateComObject(CLSID_ShellLink);

MySLink:=MyObject as IShellLink;

MyPFile:=MyObject as IPersistFile;


// 바로가기 파일 설정

with MySLink do begin

SetArgument('win.ini'); // 실행 파라메터

SetPath(PChar(GetSystemDirectory(36)+'notepad.exe')); // 실행파일이름

SetWorkingDirectory(PChar(GetSystemDirectory(36))); // 실행디렉토리

end;


// 바탕화면에 바로가기 파일 저장

MyPFile.Save(PWChar(WideString(GetSystemDirectory(CSIDL_DESKTOP)+'\test.lnk')), False);
end;

댓글 없음:

댓글 쓰기