Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Nummerok
19 / 19 / 7
Регистрация: 30.05.2014
Сообщений: 431
#1

Вывод все процессов, имеющих класс с определённым названием - C#/.NET 4.x

27.05.2015, 17:10. Просмотров 286. Ответов 8
Метки нет (Все метки)

Нужно на C# вывести список процессов, в которых есть класс MacromediaFlashPlayerActiveX

http://www.cyberforum.ru/csharp-beginners/thread1100241.html
Я нашёл такой код на C++:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
VOID Scan(HWND hwnd, BOOL B = FALSE)
{
    while (1)
    {
        HWND hwnd2 = GetWindow(hwnd, GW_CHILD);
        if (hwnd2) Scan(hwnd2, B);
        else
        {
            char M[50];
            if (!GetClassName(hwnd, M, 49)) continue;
            if (strcmp(M, "MacromediaFlashPlayerActiveX") == 0)
            {
                if (IsWindowVisible(hwnd))
                {
                    DWORD pid;
                    DWORD thread = GetWindowThreadProcessId(hwnd, &pid);
 
                    if (B == TRUE)
                    {
                        if (pid != id)
                        {
                            threadm[count] = OpenThread(THREAD_ALL_ACCESS, 0, thread);
                            hwndm[count++] = hwnd;
                            if (count == 20) return;
                        }
                    }
                    else
                        printf("PID %d\n", pid);
                }
            }
        }
        hwnd = GetNextWindow(hwnd, GW_HWNDNEXT);
        if (!hwnd) break;
    }
}
на шарп я хз как переписать его альтернативно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2015, 17:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос .NET 4.x Вывод все процессов, имеющих класс с определённым названием (C#):

Вывод чисел определённым образом тремя способами
с# Помогите пожалуйста !!! Замечание. Решите каждую задачу тремя способами –...

Найти в сообщении все ip-адреса, записать результат, используя класс string и класс StringBuilder
Задача: Находит в сообщении все ip-адреса, я могу написать при помощи...

Вывод в RichTextBox с определённым условием
Привет друзья, такая вот ситуация: хочу вывести в RichTextBox или в TextBox...

Вывод списка процессов и их Id
Помогите плиз хочу вывести полный список процессов, а выводит только 1 процесс....

Вывод локальных процессов
добрый день, как вывести список запущенных процессов в listbox??? можете...

8
Someone007
1928 / 1614 / 721
Регистрация: 09.05.2015
Сообщений: 4,012
Завершенные тесты: 1
27.05.2015, 17:28 #2
Практически тот же код, только вызывать WinAPI через PInvoke.
0
Nummerok
19 / 19 / 7
Регистрация: 30.05.2014
Сообщений: 431
27.05.2015, 17:35  [ТС] #3
Цитата Сообщение от Someone007 Посмотреть сообщение
Практически тот же код, только вызывать WinAPI через PInvoke.
C#
1
2
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 private void ProcessListUpdate()
        {
            Process[] MyProcess = Process.GetProcesses();
            for (int i = 0; i < MyProcess.Length; i++)
            {
                try
                {
                    int nRet;
                    // Pre-allocate 256 characters, since this is the maximum class name length.
                    StringBuilder ClassName = new StringBuilder(256);
                    //Get the window class name
                    nRet = GetClassName(MyProcess[i].Handle, ClassName, ClassName.Capacity);
                    if (nRet != 0)
                    {
                        if (string.Compare(ClassName.ToString(), "MacromediaFlashPlayerActiveX", true, CultureInfo.InvariantCulture) == 0)
                        {
                            MessageBox.Show(MyProcess[i].ProcessName.ToLower());
                        }
                    }
                }
                catch { }
            }
        }
чёт не пашет
0
Someone007
1928 / 1614 / 721
Регистрация: 09.05.2015
Сообщений: 4,012
Завершенные тесты: 1
27.05.2015, 18:36 #4
Цитата Сообщение от Nummerok Посмотреть сообщение
MyProcess[i].Handle
Тут должен быть хэндл окна, а не процесса.
C#
1
MyProcess[i].MainWindowHandle
Но у процесса может быть больше чем одно окно.
0
Nummerok
19 / 19 / 7
Регистрация: 30.05.2014
Сообщений: 431
27.05.2015, 18:46  [ТС] #5
Цитата Сообщение от Someone007 Посмотреть сообщение
Тут должен быть хэндл окна, а не процесса.
пробовал и так, и так . Всё равно не пашет
0
Someone007
1928 / 1614 / 721
Регистрация: 09.05.2015
Сообщений: 4,012
Завершенные тесты: 1
27.05.2015, 18:54 #6
Цитата Сообщение от Nummerok Посмотреть сообщение
пробовал и так, и так . Всё равно не пашет
Скопировал ваш код, все работает с исправлением выше.
0
Nummerok
19 / 19 / 7
Регистрация: 30.05.2014
Сообщений: 431
27.05.2015, 20:42  [ТС] #7
Цитата Сообщение от Someone007 Посмотреть сообщение
Скопировал ваш код, все работает с исправлением выше.
.NET 4.0 . Не работает
0
Nummerok
19 / 19 / 7
Регистрация: 30.05.2014
Сообщений: 431
13.06.2015, 17:07  [ТС] #8
up.
0
Nummerok
19 / 19 / 7
Регистрация: 30.05.2014
Сообщений: 431
29.06.2015, 13:29  [ТС] #9
ап.
0
29.06.2015, 13:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2015, 13:29
Привет! Вот еще темы с решениями:

Вывод PID процессов и их имена
Приветствую,есть такой код который выводит название процессов,но нужно чтоб еще...

Поиск файлов с определённым названием
Разработка программы поиска файла на компьютере, с определенным названием (в...

Выборка количества экземпляров книги с определённым названием и её чтецов
Как записать в один запрос выборку количества экземпляров книги с конкретным...

Программно создать объект с определённым названием а потом обратиться к нему
На форме есть textbox1 и button1 и button2. Нужно что бы при нажатии на кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru