2009-06-08 3 views
1

WShell.WshShortcut 나에게 셸 링크는 IShellLink 그런 식으로 사용 포함 LNK 해결하는 가장 일반적인 방법 :c : windows installer에서 끝나는 링크에서 작동하는 .lnk 대상을 해결하는 방법이 있습니까?

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

을하지만, 그런 식으로 해결 될 수없는 링크가 : \ WINDOWS \ 설치 : 해상도가 C에 결국 \ {some-guid} \ python_icon.exe 예를 들어. 대부분의 Office 프로그램에도이 문제가 있습니다.

CodeProject는 lnk 형식 http://www.codeproject.com/KB/shell/ReadLnkFile.aspx을 리버스 엔지니어링하여 수행 한 다른 해결책이 있지만 그럴 경우 작동하지 않습니다.

다른 방법이 있습니까?

이 c : \ Windows \ Installer 폴더 란 무엇입니까? 그리고이 something_icon.exe는 무엇입니까?

답변

1

좋아 나는 해결책 여기 발견했습니다 :이 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); 

p 번째 경로가 포함되어 있습니다.