Criar atalho na area de trabalho via delphi
Primeiramente olá para todos,
Alguem aqui do forúm teria uma função de como criar um atalho na area de trabalho??? Vai servir em um programa que eu mesmo desenvolvi para instalação de software e pintou esta dúvida, se alguém souber será de grande ajuda.
Obrigado desde já.
Alguem aqui do forúm teria uma função de como criar um atalho na area de trabalho??? Vai servir em um programa que eu mesmo desenvolvi para instalação de software e pintou esta dúvida, se alguém souber será de grande ajuda.
Obrigado desde já.
Nuk
Curtidas 0
Respostas
Maicongabriel
11/12/2003
[b:792facc42a]Criar atalho no desktop[/b:792facc42a]
Coloque essas units na seção implementation :
Por último, crie uma procedure que faça o trabalho:
[i:792facc42a]retirado do TDDelphi - Dica 348[/i:792facc42a]
Coloque essas units na seção implementation :
uses ShlObj, ActiveX,ComObj, Registry;
Por último, crie uma procedure que faça o trabalho:
procedure CreateShortcut (FileName, Parameters, InitialDir, ShortcutName, ShortcutFolder : String); var MyObject : IUnknown; MySLink : IShellLink; MyPFile : IPersistFile; Directory : String; WFileName : WideString; MyReg : TRegIniFile; begin MyObject := CreateComObject(CLSID_ShellLink); MySLink := MyObject as IShellLink; MyPFile := MyObject as IPersistFile; with MySLink do begin SetArguments(Parameters); SetPath(PChar(FileName)); SetWorkingDirectory(PChar(InitialDir)); end; MyReg := TRegIniFile.Create(´Software\MicroSoft\Windows\CurrentVersion\Explorer´); Directory := MyReg.ReadString (´Shell Folders´,´Desktop´,´´); WFileName := Directory + ´\´ + ShortcutName + ´.lnk´; MyPFile.Save (PWChar (WFileName), False); MyReg.Free; end;
[i:792facc42a]retirado do TDDelphi - Dica 348[/i:792facc42a]
GOSTEI 0
Fábio Sela
11/12/2003
// Foi necessário reajustar o código para funcionar;
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
Directory : String;
FileName : String;
InitialDir : String;
ShortcutName : String;
Parameters : PWideChar;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
with MySLink do
begin
SetArguments(Parameters);
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(InitialDir));
end;
MyReg := TRegIniFile.Create('Software\\MicroSoft\\Windows\\CurrentVersion\\Explorer');
Directory := MyReg.ReadString ('Shell Folders','Desktop','');
WFileName := Directory + '\\' + ShortcutName + '.lnk';
MyPFile.Save (PWChar (WFileName), False);
MyReg.Free;
end;
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
Directory : String;
FileName : String;
InitialDir : String;
ShortcutName : String;
Parameters : PWideChar;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
with MySLink do
begin
SetArguments(Parameters);
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(InitialDir));
end;
MyReg := TRegIniFile.Create('Software\\MicroSoft\\Windows\\CurrentVersion\\Explorer');
Directory := MyReg.ReadString ('Shell Folders','Desktop','');
WFileName := Directory + '\\' + ShortcutName + '.lnk';
MyPFile.Save (PWChar (WFileName), False);
MyReg.Free;
end;
GOSTEI 0
Fábio Sela
11/12/2003
Escrito em Delphi XE7
GOSTEI 0