看到有不少程序在快捷方式里面加个参数,然后运行。。就想给自己程序也加一个。。
可是怎么取到快捷方式的路径呢比如程序放在
c:\ab\程序.exe快捷方式放在
c:\程序.lnk要求运行 程序.lnk 后,路径返回 "c:\程序.lnk"  而不是 "c:\ab\程序.exe"怎么做

解决方案 »

  1.   

    可以从“c:\程序.lnk”找到“c:\ab\程序.exe”,但从“c:\ab\程序.exe”找到“c:\程序.lnk”
    但是桌面、开始菜单的路径都是固定的,可以先从这两个路径开始找
      

  2.   

    string lnkFilename = openFileDialog.FileName;
    Shell32.Shell shell = new Shell32.ShellClass();
    Shell32.Folder folder = shell.NameSpace( Path.GetDirectoryName(lnkFilename) );
    Shell32.FolderItem item = folder.ParseName( Path.GetFileName(lnkFilename) );
    Shell32.ShellLinkObject shellLink = item.GetLink as Shell32.ShellLinkObject;
    string target = shellLink.Path;            //路径
    string parameters = shellLink.Arguments;   //参数
      

  3.   


    这个 可以通过 FileDialog.DereferenceLinks=false 来取得快捷方式的路径。。但是我的不是FileDialog 呀。。怎么得到这个路径呢???????