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

Вниз

Диалог   Найти похожие ветки 

 
Kinderr   (2003-12-20 15:42) [0]

Как вызвать сабж? Не надо мне расказывать как создавать ярлык программными ср-вами. Мне надо знать как вызывается этот диалог для определённой директории.


 
Anatoly Podgoretsky   (2003-12-20 16:40) [1]

Вызывается он нажатием правой кнопки для определённой директории.


 
Kinderr   (2003-12-20 17:13) [2]

Это понятно. Но меня же не интересует как нажать на меню в эксплорере. Меня интересует как по, скажем, OnClick его вызвать :)


 
DillerXX   (2003-12-20 22:17) [3]

Хм, уважаемые мастера! А не подскажите ли как создавать ярлык программными ср-вами?


 
Kinderr   (2003-12-20 23:11) [4]

// Создание ярлыка для файла (запабликить)
function CreateLink(FileName, DestDirectory:String; OverwriteExisting,
AddNumberIfExists:Boolean):String;

VAR
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
WFileName : WideString;
X:INTEGER;
BEGIN
//Изначально RESULT = ""
Result:="";
//Если фиайла, для которого создаётся ярлык не существует, или же не
// существует директории, где должен быть создан ярлык файла, то EXIT
IF (FileExists(FileName)=FALSE) OR (DirectoryExists(DestDirectory)=FALSE)
THEN exit;
MyObject := CreateComObject(CLSID_SHELLLINK);
MyPFile := MyObject AS IPersistFile;
MySLink := MyObject AS IShellLink;
WITH MySLink DO
BEGIN
SetArguments("");
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
END;

//Гарантирование проставление завершающего "\" в пути директории
//расположения создаваемого ярлыка
IF DestDirectory[length(DestDirectory)]<>"\" THEN
DestDirectory:=DestDirectory+"\";
// Первичное определене будующего имени ярлыка
WFileName := DestDirectory+ExtractFileNameEx(FileName, FALSE)+".lnk";
//Если ярлык с таким именем уже существует, то
IF (FileExists(WFileName)) THEN
BEGIN
// Если не надо переписывать существующий ярлык, а надо добавить
// порядковый номер существования к имени создаваемого ярлыка, например
// blobby1.lnk, blobby2.lnk
IF (OverwriteExisting = FALSE ) AND (AddNumberIfExists = TRUE) THEN
BEGIN
// Определяем какой именно порядковый номер надо добавить к
// имени ярлыка
X:=0;
REPEAT
X:=X+1;
WFileName := DestDirectory+ExtractFileNameEx(FileName, FALSE)
+IntToStr(X)+".lnk";
UNTIL FileExists(WFileName)= FALSE;
// И сохраняем ярлык
MyPFile.Save(PWChar(WFileName),FALSE);
Result:=WFileName;
END;
//Если надо переписывать существующий ярлык
IF OverwriteExisting = TRUE THEN
BEGIN
//..., то переписываем его :)
MyPFile.Save(PWChar(WFileName),FALSE);
Result:=WFileName;
END;
END
ELSE
BEGIN
//В случае, если ярлыка с подобным имененм ещё нет в папке
//назначения, то создаём ярлык
MyPFile.Save(PWChar(WFileName),FALSE);
Result:=WFileName;
END;
END;

// Создание ярлыка 2
procedure CreateShortcut(const FilePath, ShortcutPath, WorkDir, Description, Params:string);
var obj: IUnknown;
isl: IShellLink;
ipf: IPersistFile;
begin
obj := CreateComObject(CLSID_ShellLink);
isl := obj as IShellLink;
ipf := obj as IPersistFile;
with isl do
begin
SetPath(PChar(FilePath));
SetArguments(PChar(Params));
SetDescription(PChar(Description));
SetWorkingDirectory(PChar(WorkDir));
end;
ipf.Save(PWChar(WideString(ShortcutPath)), False);
end;



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

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

Наверх




Память: 0.46 MB
Время: 0.03 c
6-80076
Vilux
2003-12-15 21:22
2004.02.25
WebBrowser и данные формы


1-79986
DarkUser
2004-02-12 15:30
2004.02.25
Если еще кому не надоело про DLL


1-79836
Grinder
2004-02-10 19:54
2004.02.25
ListView checked


4-80375
Сергей Резников
2003-12-20 08:06
2004.02.25
Application.OnMessage ловит не всё ?


1-79729
Cosinus
2004-02-12 13:13
2004.02.25
Оценка оставшегося времени...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский