Delphi: Criando um atalho na area de trabalho
Veja como criar um atalho no desktop do Windows com Delphi incluindo ActiveX, ComObj e ShlObj na clausula USES.
Inclua ActiveX, ComObj e ShlObj na clausula USES.
Para isso, a seguir temos os eventos do form codificados:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, ActiveX, ComObj, ShlObj, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
DirDesktop: String;
implementation
procedure TFMain.FormCreate(Sender: TObject);
var ItemIDList : PItemIDList;
begin
SetLength(DirDesktop,MAX_PATH);
SHGetSpecialFolderLocation(Application.Handle,
CSIDL_DESKTOPDIRECTORY,ItemIDList);
SHGetPathFromIDList(ItemIdList,PChar(DirDesktop));
SetLength(DirDesktop,StrLen(PChar(DirDesktop)));
end;
procedure TFMain.BitBtn1Click(Sender: TObject);
var ShellLink : IShellLink;
PersistFile : IPersistFile;
NomeLnk : WideString;
begin
ShellLink := CreateComObject(CLSID_ShellLink) as IShellLink;
PersistFile := ShellLink as IPersistFile;
with ShellLink do begin
// Informe o Título do ícone
SetDescription(PChar('DESCRIÇÃO DO ATALHO'));
// Informe o Caminho e o Arquivo
SetPath(PChar('C:PASTAARQUIVO.EXE'));
// Argumentos para linha de comando, caso existam
SetArguments(PChar(''));
// Informe o Caminho e o Arquivo
SetWorkingDirectory(
PChar(ExtractFilePath('C:PASTAARQUIVO.EXE')));
end;
// Informe o nome do Atalho
NomeLnk := DirDesktop + ' ' +
ChangeFileExt('DESCRIÇÃO DO ATALHO','.lnk');
PersistFile.Save(PWideChar(NomeLnk),False);
end;
Para ler os parâmetros contidos nos atalhos, como destino, "iniciar em" e etc., afim de corrigi-los ao ser chamado o executável, usamos o seguinte código:
IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)));
//Pega a pasta do exe
IncludeTrailingPathDelimiter(GetCurrentDir);
//Pega a pasta do ícone ('Iniciar em')
Isso é muito útil para criar um arquivo .ini, por exemplo, numa rede interna podemos ter um único executável, o que facilita a atualização, já que os perfis de usuário (arquivo .ini) são gravados localmente (GetCurrentDir).
Nota: Essa dica foi enviada pelo nosso amigo Alvaro Vieira
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo