2016-06-27 11 views
0

EnumWindow/FindWindow를 사용하여 User32.dll에서 가져온 핸들에서 프로그램 아이콘을 가져올 수 있기를 원하지만 ExtractAssociatedIcon을 알고 있지만이 방법 대신 파일에서 작동한다고 생각합니다. 손잡이. 이 질문은 핸들을 파일 위치로 변환하여 아이콘으로 변환하는 방법 일 것입니다.핸들에서 프로그램 아이콘 가져 오기

제 의도는 에서 사용하기 위해 node-ffi을 통해이 코드를 JavaScript로 이식하는 것입니다. 내 nym 모듈은 Windows 프로그램을 숨기고 표시합니다. DLL을 사용하는 것이 가장 쉽지만 C/C# 솔루션이 효과적입니다. 나는 단지 안내 할 것을 요구하고있다. 고마워.

답변

0

C#에서는 shell32.dll 함수를 사용할 수 있습니다.

코드 :

// Required namespaces. 
using System; 
using System.Drawing; 
using System.Reflection; 
using System.Runtime.InteropServices; 

// Import the function. 
[DllImport("shell32.dll", EntryPoint="ExtractAssociatedIcon")] 
public static extern IntPtr ExtractAssociatedIcon(IntPtr hInst, string lpIconPath, out ushort lpiIcon); 

// Now get the icon. 
ushort uicon; 
IntPtr handle = ExtractAssociatedIcon(this.Handle, Assembly.GetExecutingAssembly().Location, out uicon); 
Icon ico = Icon.FromHandle(handle);