Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.24;
Скачать: CL | DM;

Вниз

Как программно отправить ярлык на рабочий стол?   Найти похожие ветки 

 
Leny ©   (2003-03-04 13:53) [0]

Мастера, подскажите...
Как программно отправить ярлык на рабочий стол?
Спасибо


 
smok_er   (2003-03-04 15:03) [1]

UBPFD - бесплатная база готовых решений для Delphi
Здесь находятся ответы на самые разные вопросы по Delphi в виде полностью готовых к употреблению процедур и функций. Просто зайди, возьми и используй в своем проекте!



 
Злодей ©   (2003-03-05 21:43) [2]


uses
...Registry, ShlObj, ActiveX, ComObj, FileUtil;

......

function CreateShortcut(const ShortcutDir, CmdLine, Param, WorkDir,DirName: string;
LinkFile:String): Boolean;
var
MyObject : IUnknown;

MySLink : IShellLink;
MyPFile : IPersistFile;
WideFile : WideString;
Directory, TempStr: String;
Reg:TRegistry;
begin
Result:=False;Directory:="";
If (ShortcutDir="Desktop") or (ShortcutDir="Favorites") or
(ShortcutDir="Programs") or (ShortcutDir="SendTo") or
(ShortcutDir="Start Menu") or (ShortcutDir="Startup") then
begin
Reg:=TRegistry.Create;
Reg.OpenKey("Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell Folders",False);

Directory := Reg.ReadString(ShortcutDir);
Reg.Free;
If not(DirName="") then
Directory:=Directory+"\"+DirName;
end;
If DirExists(ShortcutDir) then
Directory:=ShortcutDir
else
If Directory="" then Exit;
If not(FileExists(CmdLine)) and not(DirExists(CmdLine)) then Exit;
If linkFile="" then Exit;
TempStr:=linkFile;

If Length(linkFile)>4 then
Delete(TempStr,1,Length(TempStr)-3);
If not(AnsiUpperCase(TempStr)="LNK") then
linkFile:=linkFile+".lnk";
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
with MySLink do
begin
SetPath(PChar(CmdLine));
SetArguments(PChar(Param));
SetWorkingDirectory(PChar(WorkDir));
end;

if Directory[Length(Directory)]="\" then
WideFile := Directory+LinkFile
else
WideFile := Directory+"\"+LinkFile;
if MyPFile.Save(PWChar(WideFile), False)= S_OK then
Result:=True;
end;



Вот примерно так!


 
Yana   (2003-03-11 14:47) [3]

Удалено модератором
Примечание: Задай СВОЙ вопрос в отдельно



Страницы: 1 вся ветка

Текущий архив: 2003.03.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
9-76246
Федя
2002-10-22 11:24
2003.03.24
Как вообще сделать что-нибудь объемное в Delphi


3-76264
orion_st
2003-03-06 17:54
2003.03.24
Пустые поля в таблице вызывают ошибку


1-76502
Dracula2000
2003-03-06 14:44
2003.03.24
MDIChildForm and Dll


3-76325
Roman Go
2003-03-05 09:40
2003.03.24
Как связать таблицы


8-76522
Gayrus
2002-12-13 10:30
2003.03.24
Bass