Q&A

  • 바로가기 만들기를 해보니..




안녕하세요 최용일님
델포에서 항상 도움을 받아 감사한 마음 가지고 있습니다
바로가기 만들기가 필요해 님의 강좌중에서 함수를 사용해보니
결과가 좀 이상하게 나와 메일 드립니다

<!--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이 생성되고맙니다
해결책을 알려주시면 감사하겠습니다




1  COMMENTS
  • Profile
    최용일 2008.02.25 19:09
    안녕하세요. 최용일입니다.

    <!--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-->

    ^^ 항상 즐코하세요.