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

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.031 c
14-80165
Krots
2004-02-01 12:43
2004.02.25
Вопрос по поводу Worda?


1-79825
ShiFT
2004-02-11 10:03
2004.02.25
как выдрать, изменить и cохранить ресурсы из чужих Exe и Dll?


14-80226
Думкин
2004-02-05 06:28
2004.02.25
С днем рождения! 5 февраля.


3-79637
ИМХО
2004-01-31 10:03
2004.02.25
TDBGrid с dgMultiSelect


1-79809
Zheks
2004-02-11 12:02
2004.02.25
Canvas, Shape, стирание того, что нарисовал





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