2009-06-08 2 views
1

IShellLinkをそのようにWShell.WshShortcutを使用して、または伴わLNK解決するための通常の方法:c: windows installerに終わるリンクで動作する.lnkターゲットを解決する方法はありますか?

var WshShell = WScript.CreateObject("WScript.Shell"); 
var oShellLink = WshShell.CreateShortcut(strDesktop + "\\some-shortcut.lnk"); 
WScript.Echo(oShellLink.TargetPath) 

しかし、そのように解決できないリンクがある:解像度はCで終わる:\ WINDOWSは\インストーラ\ {some-guid} \ python_icon.exeなどです。ほとんどのOfficeプログラムにもこの問題があります。

CodeProjectには、lnkフォーマットhttp://www.codeproject.com/KB/shell/ReadLnkFile.aspxをリバースエンジニアリングした別の解決策がありますが、そのようなケースでは機能しません。

他の方法はありますか?

このc:¥Windows¥Installerフォルダとは何ですか?そして、このsomething_icon.exeには何が入っていますか?

答えて

1

私はここに解決策見つけたOK:これらのLNKのでhttp://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/2df18f93-77d8-4217-94a1-6cbe5333a6c4

をMSIは、あなたがパスを解決するためのMSIの機能を使用する必要がLNKされています

TCHAR pc [50] = {0}; 
TCHAR feat [100] = {0}; 
TCHAR comp [50] = {0}; 
int b=MsiGetShortcutTarget("Python (command line).lnk",pc,feat,comp); 

TCHAR pth [500] = {0}; 
DWORD chs = 500; 
int i = MsiGetComponentPath (pc, comp, pth, &chs); 

PTHは、パスが含まれています。

関連する問題