Слияние кода завершено, страница обновится автоматически
unit AddToSendUnit;
interface
uses
IExeInf,ShellAPI,ShlObj,Windows,ActiveX,SysUtils,ComObj,Forms,Controls;
type
AddToSend=class(TInterfacedObject,IExeInterface)
public
function GetDescription:string;
function GetParam:string;
procedure Execute(folder:string);
private
procedure CreateLink(strPath:string;strDescription:string);
function GetSendToPath:string;
end;
implementation
uses PromptName;
var
ATS:AddToSend;
{ AddToSend }
procedure AddToSend.CreateLink(strPath, strDescription: string);
var
aObj:IUnknown;
ShellLink:IShellLink;
PersistFile:IPersistFile;
szBuffer:array[0..MAX_PATH] of char;
szWChar:array[0..MAX_PATH] of WideChar;
begin
aObj:=CreateComObject(CLSID_ShellLink);
ShellLink:=aObj as IShellLink;
PersistFile:=ShellLink as IPersistFile;
StrPCopy(szBuffer,strPath);
OleCheck(ShellLink.SetPath(szBuffer));
StrPCopy(szBuffer,GetSendToPath+'\'+strDescription+'.lnk');
MultiByteToWideChar(CP_ACP,0,szBuffer,-1,szWChar,1024);
OleCheck(PersistFile.Save(szWChar,true));
end;
procedure AddToSend.Execute(folder: string);
var
input:TInputFrm;
begin
input:=TInputFrm.Create(nil);
input.Edit1.Text:=folder;
input.ShowModal;
if (input.ModalResult=mrOK) and (input.Edit1.Text<>'') then
CreateLink(folder,input.Edit1.text);
input.Free;
end;
function AddToSend.GetDescription: string;
begin
result:='ӵ"͵"˵';
end;
function AddToSend.GetParam: string;
begin
result:='SendTo';
end;
function AddToSend.GetSendToPath: string;
var
LPID:PItemIDList;
path:array[0..MAX_PATH] of char;
begin
SHGetSpecialFolderLocation(Application.Handle,
CSIDL_SENDTO,
LPID);
ShGetPathFromIDList(lpid,path);
result:=string(path);
end;
initialization
ATS:=AddToSend.Create;
RegisterExeInf(ATS as IExeInterface);
end.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )