문제

응용 프로그램 내에서 응용 프로그램 아이콘을 어떻게 재사용하려면 어떻게 두 번 내장하지 않아도됩니다 (응용 프로그램 아이콘의 경우 한 번, 내부 사용을 위해 한 번)?

도움이 되었습니까?

해결책

P/Interop 통화를 통해 다시 읽을 수 있습니다. 그것은 다음과 같이 간다 :

static Icon GetAppIcon() {
    var fileName = Assembly.GetEntryAssembly().Location
    System.IntPtr hLibrary = NativeMethods.LoadLibrary(fileName);
    if (!hLibrary.Equals(System.IntPtr.Zero)) {
        System.IntPtr hIcon = NativeMethods.LoadIcon(hLibrary, "#32512");
        if (!hIcon.Equals(System.IntPtr.Zero)) {
            return Icon.FromHandle(hIcon);
        }
    }
    return null; //no icon was retrieved
}

또한 기본 서명은 다음과 같습니다.

private static class NativeMethods {
    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    static extern internal IntPtr LoadIcon(IntPtr hInstance, string lpIconName);

    [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
     static extern internal IntPtr LoadLibrary(string lpFileName);
}

다른 팁

사용하기가 가장 쉬운 것 같습니다 icon.extractAssociatedIcon, 이 관련 질문에 설명 된대로 :.NET (C#) 프로젝트에서 중복 아이콘 리소스 방지

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