Criar Atalho no menu de contexto da Área de Trabalho..
Olá pessoal estou aqui de novo presizando de uma ajudinha. Meu programinha de trocar o papel de parede do windows já estar quaze pronto falta pouco. A minha duvida é o seguinte como colocar um Atalho NO MENU de CONTESTO da Área de Trabalho exemplo:(quando clicamos com o botão direito do mause na área de trabalho aparece um menu =Organizar Íncones, novo, Propriedade) quero colocar um atalho do meu programinha ai.
mais uma pergunta, tambem quero colocar um atalho no painel de controle será se isto é possivel ou tenho de criar um aplicativo para painel de controle e mandar ele buscar onde o meu programinha estar instalado. Como que faço isto.
Veja a procedure abaixo de como coloco atalhos em ´Menu iniciar, Menu Iniciar\Programa, DESKTOP, Menu Iniciar\Programa\Iniciar e Menu Iniciar All Usuários´.
mais uma pergunta, tambem quero colocar um atalho no painel de controle será se isto é possivel ou tenho de criar um aplicativo para painel de controle e mandar ele buscar onde o meu programinha estar instalado. Como que faço isto.
Veja a procedure abaixo de como coloco atalhos em ´Menu iniciar, Menu Iniciar\Programa, DESKTOP, Menu Iniciar\Programa\Iniciar e Menu Iniciar All Usuários´.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShlObj, ActiveX, ComObj, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure CriaShortCut(aNome, aFileName: string; aLocation: integer);
var
IObject : IUnknown;
ISLink : IShellLink;
IPFile : IPersistFile;
PIDL : PItemIDList;
InFolder : array[0..MAX_PATH] of Char;
TargetName : String;
LinkName,s : WideString;
begin
TargetName := aFileName;
IObject := CreateComObject(CLSID_ShellLink);
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;
with ISLink do
begin
SetPath(pChar(TargetName));
SetWorkingDirectory(pChar(ExtractFilePath
(TargetName)));
end;
SHGetSpecialFolderLocation
(0, aLocation, PIDL);
SHGetPathFromIDList(PIDL, InFolder);
s := InFolder;
LinkName := s + ´\´ + aNome + ´.LNK´;
if FileExists(LinkName) then
ShowMessage(´Atalho já existe!´)
else
IPFile.Save(PWChar(LinkName), false);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin //aqui busca o atalho do programa que ta instaldo em c:\arquivos de programs\tex
CriaShortCut(´Wallpaper´, GetEnvironmentVariable(´PROGRAMFILES´)
+ ´\tex\Wall_2007.exe´ , CSIDL_COMMON_STARTMENU);
end;
{CSIDL_STARTMENU =Menu iniciar
CSIDL_PROGRAMS =Menu Iniciar\Programa
CSIDL_DESKTOP =DESKTOP
CSIDL_STARTUP =Menu Iniciar\Programa\Iniciar
CSIDL_COMMON_STARTMENU = Menu Iniciar All Usuários}
end.Cgm2k7
Curtidas 0
Respostas
Cgm2k7
04/10/2007
ai pessoal sera se ninguem sabe como
GOSTEI 0