Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Вниз

Shortcuts   Найти похожие ветки 

 
NetKnight   (2003-02-05 09:37) [0]

Как сделать функцию создания shortcut"ов на десктопе ?


 
Delirium^.Tremens   (2003-02-05 09:41) [1]

С помощью интерфейса IShellLink


 
NetKnight   (2003-02-07 09:37) [2]

Эээ.. А поподробнее ? Лучше кусок кода..


 
Внук   (2003-02-07 09:52) [3]

И чтоб работало!!!


 
Anatoly Podgoretsky   (2003-02-07 09:57) [4]

И что бы правильно.


 
Gigabyte   (2003-02-07 10:01) [5]

Класс TShellLinks в кладовке, может подойдет


 
NetKnight   (2003-02-07 10:31) [6]

--> Gigabyte
Сянькс! То что надо! :)

Ещё вопрос как узнать где находится папка Desktop ? В разных виндах она в разных местах находится.. В WINNT - в юзверевской папке, а в 98 в каталоге Вындовза...
Переменной окружения не нашёл.. :(


 
Gigabyte   (2003-02-07 11:08) [7]

SHGetSpecialFolderLocation(SHGetSpecialFolderPath) одно из двух


 
Gigabyte   (2003-02-07 11:11) [8]

Если не поможет - пришлю пример


 
NetKnight   (2003-02-07 11:28) [9]

--> Gigabyte ©
Присылай, я понятия не имею как работать с интерфейсами..
В SDK нашёл функцию SHGetDesktopFolder, но дельфи не понимает её, наверное как-то по другому она работает..


 
Gigabyte   (2003-02-07 11:36) [10]

Напишу примерчик и пришлю...
"Ждите ответа"


 
Gigabyte   (2003-02-08 10:25) [11]

Не знаю Пишел ли примерчик,так я его здесь отсавлю.
implementation
Uses ComObj,SHFolder;

const A:Array[0..15] of Integer = (
SHFolder.CSIDL_PERSONAL,{ My Documents }
SHFolder.CSIDL_APPDATA, { Application Data, new for NT4 }
SHFolder.CSIDL_LOCAL_APPDATA, { non roaming, user\Local Settings\Application Data }
SHFolder.CSIDL_INTERNET_CACHE,
SHFolder.CSIDL_COOKIES,
SHFolder.CSIDL_HISTORY,
SHFolder.CSIDL_COMMON_APPDATA, { All Users\Application Data }
SHFolder.CSIDL_WINDOWS, { GetWindowsDirectory() }
SHFolder.CSIDL_SYSTEM, { GetSystemDirectory() }
SHFolder.CSIDL_PROGRAM_FILES, { C:\Program Files }
SHFolder.CSIDL_MYPICTURES, { My Pictures, new for Win2K }
SHFolder.CSIDL_PROGRAM_FILES_COMMON, { C:\Program Files\Common }
SHFolder.CSIDL_COMMON_DOCUMENTS, { All Users\Documents }
SHFolder.CSIDL_FLAG_CREATE, { new for Win2K, or this in to force creation of folder }
SHFolder.CSIDL_COMMON_ADMINTOOLS, { All Users\Start Menu\Programs\Administrative Tools }
SHFolder.CSIDL_ADMINTOOLS); { <user name>\Start Menu\Programs\Administrative Tools }

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var S:PChar;i:integer;
T,F:Cardinal;
begin
T:=0;F:=0;
GetMem(S,Max_Path);
try
For i:=0 to High(A) do
begin
OleCheck(SHFolder.SHGetFolderPath(Self.Handle,A[i],T,F,S));
Listbox1.Items.Add(S);
end;
finally
FreeMem(S,Max_Path);
end;
end;
end.


 
Style   (2003-02-08 23:52) [12]

const
CLSID_LINK: TGUID = "{00021401-0000-0000-C000-000000000046}";
CLSID_PST: TGUID = "{0000010B-0000-0000-C000-000000000046}";

implement..

procedure ButtonClick
begin

Dir := GetRegStringValue("Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Desktop",HKEY_CURRENT_USER);

CreateLinkFile("C:\program.exe",dir + "Програмулька.lnk");

end;

procedure TForm1.CreateLinkFile(Prog,Link: string);
var
NewLink: IShellLInk;
hRes: THandle;
pf: IPersistFile;
begin

NewLink := CreateComObject(CLSID_LINK) as IShellLink;
NewLink.SetPath(pchar(Prog));
NewLink.SetWorkingDirectory(Pchar(ExtractFilePath(Prog)));
NewLink.SetDescription(PChar("Ярлык для " + Prog));
hRes := NewLink.QueryInterface(CLSID_PST, pf);
if Succeeded(hRes) then
pf.Save(PWideChar(WideString(Link)), False);

end;





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

Форум: "Основная";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-52804
vikser
2003-01-31 17:02
2003.02.17
Консольное приложение и DataModule с ADO????


4-53326
Brat-2
2003-01-06 23:09
2003.02.17
Пишем win.ini


1-52941
Вадим
2003-02-09 03:49
2003.02.17
время в формате Unix -> TDateTime


1-52951
SoftFM
2003-02-09 17:42
2003.02.17
Работа с Execl


1-52926
Sterh
2003-02-07 21:22
2003.02.17
Bios Alarm





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский