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

Вниз

Как создать ЯРЛЫК   Найти похожие ветки 

 
GRAVE DIGGER   (2002-09-14 18:14) [0]

Как сделать, чтоб на форму можно было перетаскивать(создавать)
ярлыки внешних программ!
Я создаю прогу заменяющую рабочий стол!


 
[NIKEL] ©   (2002-09-15 00:14) [1]

может поможет:
<CODETForm1 = class(TForm)
...
private
{ Private declarations }
procedure WMDropFiles(var M : TWMDropFiles); message WM_DROPFILES;
...
end;

var

Form1: TForm1;

implementation

uses

StrUtils, ShellAPI, ComObj, ShlObj, ActiveX;;

procedure TForm1.FormCreate(Sender: TObject);
begin

...
DragAcceptFiles(Handle, True);
...
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin

...
DragAcceptFiles(Handle, False);
...
end;

procedure TForm1.WMDropFiles(var M : TWMDropFiles);
var

hDrop: Cardinal;
n: Integer;
s: string;
begin

hDrop := M.Drop;
n := DragQueryFile(hDrop, 0, nil, 0);
SetLength(s, n);
DragQueryFile(hDrop, 0, PChar(s), n + 1);
DragFinish(hDrop);
M.Result := 0;
FileOpen(s);
end;

procedure TForm1.FileOpen(FileName: string);
begin

if CompareText(ExtractFileExt(FileName), ".lnk") = 0
then FileName := ResolveShortcut(Application.Handle, FileName);
DocName := ExtractFileName(FileName);
Caption := Application.Title + " - " + DocName;
...
end;

function ResolveShortcut(Wnd: HWND; ShortcutPath: string): string;
var

obj: IUnknown;
isl: IShellLink;
ipf: IPersistFile;
pfd: TWin32FindDataA;
begin

Result := "";
obj := CreateComObject(CLSID_ShellLink);
isl := obj as IShellLink;
ipf := obj as IPersistFile;
ipf.Load(PWChar(WideString(ShortcutPath)), STGM_READ);
with isl do
begin
Resolve(Wnd, SLR_ANY_MATCH);
SetLength(Result, MAX_PATH);
GetPath(PChar(Result), Length(Result), pfd, SLGP_UNCPRIORITY);
Result := PChar(Result);
end;
end; >



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
7-85728
Чайник2
2002-07-09 11:51
2002.09.26
CD-ROM


3-85411
ShaggyDoc
2002-09-05 09:32
2002.09.26
Хранение геодезических координат в базе данных


3-85328
str_
2002-09-03 10:51
2002.09.26
Ручная настрока BDE?


1-85599
bamper
2002-09-13 18:42
2002.09.26
Низкоуровневое программирование


1-85489
Nico1a
2002-09-12 15:42
2002.09.26
Event & Procedure