문제

배경: 나는 WPF를 통해 C#을 가르치기로 결정했으며, 시작 메뉴 바로 가기 목록과 목표를 얻고 저장하는 데 필요한 작은 응용 프로그램을 작성합니다. 기본적으로 나는 모든 지름길을 가져 와서 대상 응용 프로그램의 경로를 메모리에 넣으려고 노력하고 있습니다. 그러나 나는 Windows Installer 바로 가기 ( C:\Windows\Installer\{90120000-0030-0000-0000-0000000FF1CE}\wordicon.exe - Microsoft Office는 이것의 좋은 예입니다). 나는 약간의 연구를 수행했으며 Windows는 레지스트리와 관련된 비하인드 마법을 사용하여 파일의 실제 위치를 찾는 것으로 보입니다.


의문: C#에서이 Windows 설치 프로그램 바로 가기의 실제 대상을 어떻게 얻을 수 있습니까? 내가 찾은 많은 소스가 IShellLink 인터페이스이지만 C#과 함께 사용하는 방법을 모르겠습니다. 레지스트리를 수동으로 보는 대신 Windows API 호출 (또는 더 나은 .NET 라이브러리)을 사용하는 것이 좋습니다. 그러나 문제에 대한 지침을받을 것입니다.

도움이 되었습니까?

해결책

더 많은 연구를 한 후에는 쉬운 답변을 찾았습니다. 여기. 기본적으로 조합을 사용하고 있습니다 MsiGetShortcutTarget 그리고 MsiGetComponentPath 의 기능 msi.dll.

다른 팁

IshellLink가 쉘 링크를 사용하기위한 Windows API 인 것 같습니다! 쉘 API는 COM 기반입니다.

그러나 좋은 소식은 COM Interop이 .NET에서 매우 잘 작동한다는 것입니다. 이 사이트는 일반적으로 매우 좋은 리소스입니다.

http://www.pinvoke.net/default.aspx/interfaces/ishelllinka.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top