Criar atalho na area de trabalho via delphi

11/12/2003

0

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á.


Responder

Posts

11/12/2003

Maicongabriel

[b:792facc42a]Criar atalho no desktop[/b: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]


Responder

04/10/2016

Fábio Sela

// 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;
Responder

04/10/2016

Fábio Sela

Escrito em Delphi XE7
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar