Воскресенье, 22 Декабря 2024, 13:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[C#]Как определить,что приложение не скрыто(подробнее внутри
zacДата: Суббота, 17 Августа 2013, 20:38 | Сообщение # 1
участник
Сейчас нет на сайте
Здравствуйте,товарищи!

У меня появилось желание сделать свою панель задач.
Я выяснил,что для того,чтобы получить названия всех процессов и понять что из них сервис,а что - графическое приложение нужно использовать такой цикл :

Код

System.Diagnostics.Process[] processes;
                 processes = System.Diagnostics.Process.GetProcesses();

                 for (int i = 0; i < processes.Length; i++)
                 {
                     processes[i].Refresh();

                     try
                     {

                         if (processes[i].MainWindowHandle != IntPtr.Zero)
                         {
                             this.listBox1.Items.Add(processes[i].ProcessName);
                         }

                     }

                     catch
                     {

                     }
                 }



Проблема состоит в том, что в списке процессов появляются приложение с графическом интерфейсом, НО которые не должны появляться в списке приложений Диспетчера Задач(например : Steam,GameNet)
Как исправить это?
Я хочу,чтобы они не появлялись,как это и есть в диспетчере задач,вот скрин

Добавлено (17.08.2013, 20:38)
---------------------------------------------
Кажется,что я решил свою проблему.
Просто нужно выяснить параметр length у MainWindowTitle.
Если он больше 0,то программа не спрятана(работает со Steam и GameNet)
Если кого-то заинтересует,то вот код :

Код

System.Diagnostics.Process[] processes;
             processes = System.Diagnostics.Process.GetProcesses();

             for (int i = 0; i < processes.Length; i++)
             {
                 processes[i].Refresh();
                 try
                 {

                     if (processes[i].MainWindowHandle != IntPtr.Zero)
                     {
                         if (processes[i].MainWindowTitle.Length > 0)
                         {
                             this.listBox1.Items.Add(processes[i].ProcessName);
                         }
                     }

                 }

                 catch
                 {

                 }
             }


Сообщение отредактировал zac - Суббота, 17 Августа 2013, 20:17
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг