请问如何获取快捷方式lnk文件的安装根目录?
如桌面上   QQ.LNK
目标:D:\Program Files\Tencent\QQ\QQ.exe

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      vShellLink: IShellLink;
      vPersistFile: IPersistFile;
      vUnKnown: IUnKnown;
      vWin32FindData: TWin32FindData;
      vBuffer: array[0..MAX_PATH] of Char;
      vFileName: WideString;
    begin
      vFileName := 'C:\Documents and Settings\xxx\桌面\qq.lnk';
      try
        vUnKnown := CreateComObject(CLSID_ShellLink);
        vShellLink := vUnKnown as IShellLink;
        vPersistFile := vUnKnown as IPersistFile;
        vPersistFile.Load(PWChar(vFileName), 0);    vShellLink.GetPath(vBuffer, SizeOf(vBuffer), vWin32FindData, 0);
        ShowMessage(vBuffer);
        vShellLink.GetWorkingDirectory(vBuffer, SizeOf(vBuffer));
        ShowMessage(vBuffer);
      except
      end;
    end;