프로그램으로 아이콘을 생성하는 소스를 구해서 코딩을 해보니 잘만들어 지더군요
그런데..
아이콘이름은 소스에서 지정한대로 되지가 않더군요
Params.Description = '내가 만든 아이콘';
....
Param.SetDescription(PChar(Params.Description));이 지정하는것 아닌가요?
그런데.. 왜 실행파일 이름이 바탕화면에 계속 뜨는지..
그리고 프로그램에서 코딩으로 바탕화면의 아이콘의 이름을 바꾸려면 어떻게 해야 하나요?
고수님들 좀 가르쳐주세요.. 제발 흑흑
바로가기도 하나의 파일입니다. 확장자는 .lnk이고 기본적으로 숨김형식으로 보이지 않게 되어
있을뿐입니다.
이름만 바꿀거면 아래 지락.... 님이 말씀하신대로 그냥 파일이름만 바꾸어주시면 간단하게 됩니다.
IShellLink.SetDescription메소드는 바로가기 아이콘의 이름을 지정하는것이 아니고, 등록정보
대화상자를 띄웠을때 아래쪽에 나타나는 "설명"이라는 에디트에 들어가는 글입니다. 아이콘의 이름
하고는 상관이 없습니다.
IShellLink를 이용하실거면 IShellLink로 바로가기 아이콘을 불러와서 IPersistFile를 이용해서 다른
이름으로 다시 저장만 해주시면 됩니다.
uses
......, ShellObj, ActiveX, ComObj;
const
IconSourceName = 'C:Documents and Settings최용일바탕 화면내프로그램.lnk';
IconDestName = 'C:Documents and Settings최용일바탕 화면내프로그램 두번째.lnk';
var
ShellLink: IShellLink;
PersistFile: IPersistFile;
begin
CoInitialize(nil);
CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER,
IID_IShellLinkA, ShellLink);
PersistFile := ShellLink as IPersistFile;
if PersistFile.Load(IconSourceName, STGM_READWRITE) = S_OK then
begin
DeleteFile(IconSourceName);
PersistFile.Save(IconDestName, True);
end;
CoUninitialize;
end;
^^ 항상 즐코하세요...
델초보 wrote:
> 프로그램으로 아이콘을 생성하는 소스를 구해서 코딩을 해보니 잘만들어 지더군요
> 그런데..
> 아이콘이름은 소스에서 지정한대로 되지가 않더군요
> Params.Description = '내가 만든 아이콘';
> ....
> Param.SetDescription(PChar(Params.Description));이 지정하는것 아닌가요?
> 그런데.. 왜 실행파일 이름이 바탕화면에 계속 뜨는지..
>
> 그리고 프로그램에서 코딩으로 바탕화면의 아이콘의 이름을 바꾸려면 어떻게 해야 하나요?
>
> 고수님들 좀 가르쳐주세요.. 제발 흑흑