2009-07-24 1 views
0

배경 : 저는 WPF를 통해 C#을 가르치기로 결정했습니다. 그리고 시작 메뉴 바로 가기와 해당 대상 목록을 가져와야하는 작은 응용 프로그램을 작성하고 있습니다. 그들을 저장하십시오. 기본적으로 모든 단축키를 사용하고 대상 응용 프로그램의 경로를 메모리에 저장하려고합니다. 그러나 Windows Installer 바로 가기 (예 : C:\Windows\Installer\{90120000-0030-0000-0000-0000000FF1CE}\wordicon.exe - Microsoft Office를 예로들 수 있습니다.)를 읽는 중 문제가 발생했습니다. 나는 약간의 조사를했고, Windows가 파일의 실제 위치를 찾기 위해 레지스트리를 포함하는 비하인드 마술을 사용하는 것으로 보인다.C# (WPF)로 설치 프로그램 바로 가기를 읽는 방법


질문 : C#에서 이들의 Windows Installer 바로 가기의 실제 대상을 얻을 수있는 방법? 내가 찾은 많은 소스가 IShellLink 인터페이스를 가리키고 있지만, C#과 함께 사용하는 방법을 모르겠습니다. 레지스트리를 수동으로 조사하는 대신 Windows API 호출 (또는 더 좋게는 .NET 라이브러리)을 사용하는 것을 선호하지만 문제에 대한 지침을 취할 것입니다.

답변

1

더 많은 연구를하고 후에, 나는 쉽게 대답 here을 발견 :이 사이트는 일반적으로 아주 좋은 자원이다. 기본적으로 MsiGetShortcutTargetMsiGetComponentPath 함수의 조합을 msi.dll으로 사용하고 있습니다.

0

죄송합니다. IShellLink는 셸 링크를 사용하기위한 Windows API입니다! Shell API는 주로 COM 기반입니다.

그러나 좋은 소식은 COM interop이 .NET에서 매우 잘 작동한다는 것입니다.

http://www.pinvoke.net/default.aspx/Interfaces/IShellLinkA.html

+0

C# 초보자이기 때문에 링크가 도움이되지 않습니다. 인터페이스로 무엇을 할 수 있습니까? 나는 또한 문제를 이해하고 싶다. 그래서 나에게 인터페이스를주는 것은 나에게 상당히 쓸모가 없다. 그러나 어쨌든 고마워. –

+0

나는 곧 샘플을 노크 해 볼 것이다. –