Добавить приложение в меню Windows Отправить
Мы часто используем этот пункт меню Windows, чтобы отправить ярлык на Рабочий Стол, отправить файл на флешку или флоппи диск. Папка Отправить (SendTo) содержит ярлыки назначения, которые отображаются в контекстном меню Windows. В Windows 7 эта папка находится по адресу:
Disk:\Users\Пользователь\AppData\Roaming\Microsoft\Windows\SendTo
.
Любой пользователь может настроить содержание этой папки.
Вот как можно создать Ваш собственный пункт меню Проводника Windows Отправить.
- Создать ярлык для Вашего приложения.
- Поместить его в папку
SendTo
. - Теперь можно отправлять файлы Вашему приложению через контекстное меню Проводника Отправить.
Создание ярлыка и помещение его в папку SendTo
в Delphi состоит из одного шага:
uses { ... }, ShlObj, ActiveX, ComObj; procedure CreateShortcutIn(const SpecialFolderCSIDL: integer; const shortcutName : string) ; var IObject : IUnknown; ISLink : IShellLink; IPFile : IPersistFile; PIDL : PItemIDList; InFolder : array[0..MAX_PATH] of Char; TargetName : String; LinkName : WideString; begin TargetName := ParamStr(0) ; IObject := CreateComObject(CLSID_ShellLink) ; ISLink := IObject as IShellLink; IPFile := IObject as IPersistFile; with ISLink do begin SetPath(pChar(TargetName)) ; SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ; end; // получить расположение "специальной папки" SHGetSpecialFolderLocation(0, SpecialFolderCSIDL, PIDL) ; SHGetPathFromIDList(PIDL, InFolder) ; LinkName := Format('%s\%s.lnk',[InFolder, shortcutName]) ; IPFile.Save(PWChar(LinkName), false) ; end;
Использование
// CSIDL_SENDTO = "Send TO" специальная папка CreateShortcutIn(CSIDL_SENDTO,'My Delphi Application') ;
Обработка файла передается в приложение в событии OnCreate формы:
procedure TMainForm.FormCreate(Sender: TObject) ; begin // получаем файл, который нужно отправить в Ваше приложение if ParamCount > 0 then ShowMessage(ParamStr(1)) ; end;
Примечание: В Windows, для того, чтобы вручную добавить ярлык в папку SendTo
, нужно выполнить следующие действия:
- Нажмите кнопку Пуск и выберите пункт Выполнить.
- В поле Открыть введите SendTo и нажмите ОК.
- Используя операции перетаскивания, перетащите нужный элемент в эту папку.
Комментарии