如何把某个文件名添加到那个 <文档>里去?另外如何做lnk(190分)

  • 主题发起人 主题发起人 bn_002345
  • 开始时间 开始时间
B

bn_002345

Unregistered / Unconfirmed
GUEST, unregistred user!
就是开始程序上面的那个文档
 
///////////////////////////////////////////////////////////////
在程序里添加一个目录若干快捷键,并用资源管理器将它打开
1.首先添加System的TDdeClientConv
并且在DdeClientConv1的DdeService里填入Progman
var
path,str,item,command:String;
Cmd: array[0..255] of Char;
begin
path:='目录名';
str:=Format('[CreateGroup(%s)]', [path]) + #13#10;
StrPCopy (Cmd, str);
self.DdeClientConv1.OpenLink;
if not DDEClientConv1.ExecuteMacro(Cmd, False) then
MessageDlg('Unable to create group.', mtInformation, [mbOK], 0);
以上是创建目录
接下来是创建快捷键

item:='快捷键名';
command:='命令路径';
str := Format('[AddItem(%s,%s)]', [command,item]) + #13#10;
StrPCopy (Cmd, str);

if not DDEClientConv1.ExecuteMacro(Cmd, False) then
MessageDlg('Unable to create item.', mtInformation, [mbOK], 0);

DDEClientConv1.CloseLink;
end;
/////////////////////////////////////////////////////////////////////
创建桌面快捷和程序里的快捷
uses comobj,ShlObj,activex,FileCtrl;
//Filename为文件路径 FileDesc 为文件描述,leixing为1是创建桌面快捷,2是程序
里的快捷
//当要创建程序里的快捷的时候,ProgmanPath就是路径 如/zzz/ccc
procedure TForm1.MakeLink(Filename, FileDesc,ProgmanPath: string;
leixing: integer);
var
tmpObject : IUnknown;
tmpSLink : IShellLink;
tmpPFile : IPersistFile;
PIDL : PItemIDList;
StartupDirectory : array[0..MAX_PATH] of Char;
LinkFilename : WideString;
bianliang,Path:string;
begin
bianliang:='/'+FileDesc+'.lnk';
tmpObject := CreateComObject(CLSID_ShellLink);
//创建建立快捷方式的外壳扩展
tmpSLink := tmpObject as IShellLink; //取得接口
tmpPFile := tmpObject as IPersistFile; //用来储存*.lnk文件的接口
tmpSLink.SetPath(pChar(FileName)); //设定 filename 所在路径
tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(FileName)));
//设定工作目录
//创建桌面快捷方式
if leixing=1 then
begin
SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);
//获得桌面的Itemidlist
Fillchar(startupdirectory,Max_Path+1,0);
SHGetPathFromIDList(PIDL,StartupDirectory); //获得路径
LinkFilename := StartupDirectory + bianliang;
//WriteToUnstallFile(LinkFilename,2);//好象没有也可以?
tmpPFile.Save(pWChar(LinkFilename),FALSE);
//保存*.lnk文件
End
else
begin
//创建开始按钮中的 program 快捷方式
SHGetSpecialFolderLocation(0, CSIDL_PROGRAMS,PIDL);
//获得开始按钮中的program的Itemidlist
Fillchar(startupdirectory,Max_Path+1,0);
SHGetPathFromIDList(PIDL,StartupDirectory);
//获得路径
Path:=StartupDirectory+ProgmanPath;
If not DirectoryExists(Path) then
begin
ForceDirectories(path);
//WriteToUnstallFile(Path,1);
end;
LinkFilename := path + bianliang;
//WriteToUnstallFile(LinkFilename,2);
tmpPFile.Save(pWChar(LinkFilename),FALSE); //保存*.lnk文件
End;
end;

至于添加到那个文档
是不是这个意思?

uses ShellAPI,ShlOBJ
SHAddToRecentDocs(SHARD_PATH,PChar('D:/IME.EXE') );

看看是不是你要的
 
接受答案了.
 
后退
顶部