인스톨을 수작업으로 하기 위해 필요한 정보였음.
버튼을 클릭하면 바탕화면에 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;
댓글 없음:
댓글 쓰기