안녕하세요 최용일님
델포에서 항상 도움을 받아 감사한 마음 가지고 있습니다
바로가기 만들기가 필요해 님의 강좌중에서 함수를 사용해보니
결과가 좀 이상하게 나와 메일 드립니다
<!--CodeS-->
Params.Description := 'MyProgram';
Params.IconLocation := 'C:\Program Files\MyProgram\MyProgram.exe';
Params.IconIndex := 0;
Params.ShowCommand := SW_SHOWNORMAL;
Params.TargetFilename := 'C:\Program Files\MyProgram\MyProgram.exe';
Params.WorkingDir := 'C:\Program Files\MyProgram';
Params.UseSpecialFolder := True;
Params.SpecialFolder := CSIDL_STARTUP;
CreateShellLink(Application.Handle, Params);
<!--CodeE-->
이렇게 하면
시작메뉴->프로그램->시작프로그램-> MyProgram.exe의 바로가기가 보여야하는데
시작메뉴->프로그램->시작프로그램MyProgram.exe의 바로가기로 나타납니다
즉 시작프로그램이 디렉토리가 아니라 파일명앞에 붙어버려 '시작프로그램MyProgram'가 파일명이
돼버리고 마는 것입니다
바탕화면 바로가기도 마찬가지입니다
<!--CodeS-->
Params.Description := 'MyProgram';
Params.IconLocation := 'C:\Program Files\MyProgram\MyProgram.exe';
Params.IconIndex := 0;
Params.ShowCommand := SW_SHOWNORMAL;
Params.TargetFilename := 'C:\Program Files\MyProgram\MyProgram.exe';
Params.WorkingDir := 'C:\Program Files\MyProgram';
Params.UseSpecialFolder := True;
Params.SpecialFolder := CSIDL_DESKTOP;
CreateShellLink(Application.Handle, Params);
<!--CodeE-->
바탕화면MyProgram이 생성되고맙니다
해결책을 알려주시면 감사하겠습니다
<!--CodeS-->
if (Params.LinkPath = '') or (Params.LinkPath[1] <> '') then
Params.LinkPath := '' + Params.LinkPath;
<!--CodeE-->
위 부분을 아래와 같이 고치세요.
<!--CodeS-->
if (Params.LinkPath = '') or (Params.LinkPath[1] <> '\') then
Params.LinkPath := '\' + Params.LinkPath;
if Params.LinkPath[Length(Params.LinkPath)] <> '\' then
Params.LinkPath := Params.LinkPath + '\';
<!--CodeE-->
^^ 항상 즐코하세요.