如何在一个指定的目录内弹出Windows的创建快捷方式窗口(如果直接有API最好)(80分)

  • 主题发起人 主题发起人 天若无痕
  • 开始时间 开始时间

天若无痕

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在一个指定的目录内弹出Windows的创建快捷方式窗口(如果直接有API最好)<br>注意,不是指定一个文件创建该文件的快捷方式,是指指定一个目录弹出Windows的快捷方式创建窗口在这个目录创建一个快捷方式。<br>谢谢。
 
没有人回答?郁闷,期待
 
提上来,再问。
 
再次提前
 
uses ShlObj, ActiveX, ComObj, Registry;<br><br> ...........................<br><br> Procedure SetLink(FolderNo: Integer; ACmdFile, Parameter, LinkName: string);<br><br> const<br>  Folder: array[0..2] of string = ("Desktop", "Start Menu", "Programs");<br> var<br><br>  MyObject : Iunknown;<br>  MySLink : IShellLink;<br>  MyPFile : IPersistFile;<br>  FileName : string;<br>  Directory : string;<br>  WFileName : WideString;<br>  MyReg : TRegIniFile;<br><br> begin<br><br>  MyObject := CreateComObject(CLSID_ShellLink);<br>  MySLink := MyObject as IShellLink;<br>  MyPFile := MyObject as IPersistFile;<br>  FileName := ACmdFile;<br>  with MySLink do<br>begin<br><br>  SetArguments(Pchar(Parameter));<br>  SetPath(Pchar(FileName));<br>  SetWorkingDirectory(Pchar(ExtractFilePath(FileName)));<br> end;<br><br>  MyReg := TRegIniFile.Create(<br>  "Software/MicroSoft/Windows/CurrentVersion/Explorer");<br>  if ((FolderNo $#@60; 0) or (FolderNo $#@62; 2)) then<br>  FolderNo := 0;<br>  Directory := MyReg.ReadString("Shell Folders", Folder[FolderNo],"");<br>  //CreateDir(Directory);<br>  WFileName := Directory + "/" + LinkName + ".lnk";<br>  MyPFile.Save(PWChar(WFileName),False);<br>  MyReg.Free;<br> end;<br><br>例如:在桌面、开始菜单、程序菜单中添加计算器的快捷方式:<br><br> SetLink(0, "c:/windows/calc.exe", "", "计算器");<br> SetLink(1, "c:/windows/calc.exe", "", "计算器");<br> SetLink(2, "c:/windows/calc.exe", "", "计算器");<br><br>
 
rundll32.exe appwiz.cpl,NewLinkHere c:/
 
yaoqiaofeng,谢谢你参与我的问题,但是因为通过程序生成快捷方式不是我所需要的,我已经有这样的方法了.问题中我也已经强调了,不过还是谢谢你.<br>ysai,谢谢你,分给你了.
 
后退
顶部