Как получить количество элементов в системном трее? - C#
Формулировка задачи:
Как получить количество элементов в системном трее?
И названия exe-шников, которые там сидят?
Решение задачи: «Как получить количество элементов в системном трее?»
textual
Листинг программы
using System; using System.Runtime.InteropServices; class Program { [DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle); [DllImport("user32.dll")] private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); static void Main(string[] args) { const int TB_BUTTONCOUNT = 1048; IntPtr hWnd = FindWindow("Shell_TrayWnd", null); if (hWnd == IntPtr.Zero) Console.WriteLine("Не удалось найди дескриптор окна"); else { Console.WriteLine("Найдено"); hWnd = FindWindowEx(hWnd, IntPtr.Zero, "TrayNotifyWnd", null); if (hWnd == IntPtr.Zero) Console.WriteLine("Не удалось найди дескриптор окна"); else { Console.WriteLine("Найдено"); hWnd = FindWindowEx(hWnd, IntPtr.Zero, "SysPager", null); if (hWnd == IntPtr.Zero) Console.WriteLine("Не удалось найди дескриптор окна"); else { Console.WriteLine("Найдено"); hWnd = FindWindowEx(hWnd, IntPtr.Zero, "ToolbarWindow32", null); int iconCount = (int)SendMessage(hWnd, TB_BUTTONCOUNT, 0, 0); Console.WriteLine("Количество иконок в трее: " + iconCount); } } } Console.ReadKey(true); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д