Get window icon async

This commit is contained in:
Jaex 2022-06-13 18:21:08 +03:00
parent 16c1965856
commit 3cdf839f01
2 changed files with 5 additions and 4 deletions

View file

@ -147,7 +147,9 @@ public static IntPtr SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong)
private static Icon GetSmallApplicationIcon(IntPtr handle) private static Icon GetSmallApplicationIcon(IntPtr handle)
{ {
SendMessageTimeout(handle, (int)WindowsMessages.GETICON, NativeConstants.ICON_SMALL2, 0, SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 1000, out IntPtr iconHandle); IntPtr iconHandle;
SendMessageTimeout(handle, (int)WindowsMessages.GETICON, NativeConstants.ICON_SMALL2, 0, SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 1000, out iconHandle);
if (iconHandle == IntPtr.Zero) if (iconHandle == IntPtr.Zero)
{ {

View file

@ -1197,16 +1197,15 @@ private async Task PrepareCaptureMenuAsync(ToolStripMenuItem tsmiWindow, EventHa
ToolStripMenuItem tsmi = new ToolStripMenuItem(title); ToolStripMenuItem tsmi = new ToolStripMenuItem(title);
tsmi.Tag = window; tsmi.Tag = window;
tsmi.Click += handlerWindow; tsmi.Click += handlerWindow;
items.Add(tsmi);
using (Icon icon = window.Icon) using (Icon icon = await Task.Run(() => window.Icon))
{ {
if (icon != null && icon.Width > 0 && icon.Height > 0) if (icon != null && icon.Width > 0 && icon.Height > 0)
{ {
tsmi.Image = icon.ToBitmap(); tsmi.Image = icon.ToBitmap();
} }
} }
items.Add(tsmi);
} }
catch (Exception e) catch (Exception e)
{ {