Как получить количество элементов в системном трее? - 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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы