Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Узнать PID процесса

08.11.2012, 13:23. Показов 3360. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Так я узнаю PID процесса, -
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
unsigned long PIDByName(AnsiString AProcessName)
{
  HANDLE pHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  PROCESSENTRY32 ProcessEntry;
  unsigned long pid;
  ProcessEntry.dwSize = sizeof(ProcessEntry);
  bool Loop = Process32First(pHandle, &ProcessEntry);
 
  while (Loop)
    {
     if (strcmp(ProcessEntry.szExeFile, AProcessName.c_str()) == 0)
      {
                  pid = ProcessEntry.th32ProcessID;
                  CloseHandle(pHandle);
                  return pid;
      }
      Loop = Process32Next(pHandle, &ProcessEntry);
    }
    return 0;
}
 pid = PIDByName("dvbdream.exe");
а если у меня несколько процессов с таким именем то как узнать у все их PID?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2012, 13:23
Ответы с готовыми решениями:

Как по PID процесса, узнать путь где находиться программа?
Здравствуйте уважаемые программисты! Подскажите пожалуйста, как по PID процесса, узнать путь где находиться программа? Заранее...

Как по имени exe-файла узнать pid?
Здравствуйте!!! :) Помогите пожалуйста! Как по имени exe-файла узнать pid процесса? Много тем пересмотрел.. Много исходников не...

Узнать имя процесса имея HWND
Возник такой вопрос: как можно узнать имя процесса, имея его HWND? Добавлено через 18 минут Точнее имея HWND окна процесса

9
4 / 4 / 0
Регистрация: 11.02.2011
Сообщений: 89
08.11.2012, 13:39
В чем проблема то? Если консоль создаешь переменную куда забивается имя и массив в который записываешь результаты. Если окно, еще проще, edit и listbox решают твою проблему...
1
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
08.11.2012, 14:31
C++
1
2
3
4
5
6
7
8
     if (strcmp(ProcessEntry.szExeFile, AProcessName.c_str()) == 0)
      {
                  pid = ProcessEntry.th32ProcessID;
                  /* CloseHandle(pHandle);
                  return pid; */
                  // Вместо этого найденный pid пихаем в массив/контейнер и ищем дальше
      }
      Loop = Process32Next(pHandle, &ProcessEntry);
И перед ретурном не забыть, а то отсутствует
C++
1
CloseHandle(pHandle);
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
08.11.2012, 15:39  [ТС]
а где тут у меня ошибка?
в таймере
C++
1
2
3
4
   int pid;
     for(int i = 0; i <  Form1->redt1->Lines->Count; i++)   //в redt1 около 10 PID
  if (pid = (Form1->redt1->Lines->Strings[i].ToInt()));        //тут я запутался
 ShowMessage(pid);  // а здесь должно выдать 10 ShowMessage
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
08.11.2012, 15:42
Цитата Сообщение от Ddv122 Посмотреть сообщение
if (pid =
= это не сравнение, а присвоение
Цитата Сообщение от Ddv122 Посмотреть сообщение
);
в конце if не ставится
Цитата Сообщение от Ddv122 Посмотреть сообщение
int pid;
...
if (pid =
Чему равно pid ?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
08.11.2012, 15:46  [ТС]
У меня в redt1 10 PID
8121
1222
1258
2548
и т.д
Мне нужно что бы в переменную
C++
1
int pid;
они занеслись все по очереди, а заносится только 1 PID
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
08.11.2012, 15:52
Цитата Сообщение от Ddv122 Посмотреть сообщение
они занеслись все по очереди
А зачем их в цикле заносить по очереди, если всё равно сохранится только последний?
anyway
C++
1
2
3
4
5
6
int pid;
     for(int i = 0; i <  Form1->redt1->Lines->Count; i++)  
     {
      pid = StrToInt(Form1->redt1->Lines->Strings[i]);       
      ShowMessage(IntToStr(pid));
     }
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
08.11.2012, 15:57  [ТС]
Цитата Сообщение от mimicria Посмотреть сообщение
А зачем их в цикле заносить по очереди, если всё равно сохранится только последний?
К примеру у меня запущено 3 приложения с одинаковым именем, мне нужно узнать PID этих 3 приложений, и вывести 3 ShowMessage с 3 Этими PID
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
08.11.2012, 16:03
Цитата Сообщение от Ddv122 Посмотреть сообщение
и вывести 3 ShowMessage с 3 Этими PID
Зачем тогда гонять туда-сюда pid?
C++
1
for(int i = 0; i <  Form1->redt1->Lines->Count; i++) ShowMessage(Form1->redt1->Lines->Strings[i]);
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
08.11.2012, 16:13  [ТС]
Цитата Сообщение от mimicria Посмотреть сообщение
Зачем тогда гонять туда-сюда pid?
У меня есть функция, которой каждую секунду я передаю PID. Но, на данный момент передает только 1 PID, а должно 3.
В этом у меня загвоздка, я получил 3 PID, но передать их по очереди в переменную не могу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.11.2012, 16:13
Помогаю со студенческими работами здесь

Как узнать размер используемой памяти процесса?
Собственно, сабж. Возвращаемый размер должен совпадать с тем, что показывает диспетчер задач. Функция GetProcessMemoryInfo для этого не...

Узнать путь к исполняемому файлу любого процесса
помогите как узнать путь к исполняемому файлу любого процесса скажем дано calc.exe надо получить c:\windows\system32 спасибо

Узнать PID процесса
Подскажите пожалуйста, как узнать PID процесса зная его имя (например explorer'a)!!! Пол интернета перерыл, функции все не рабочие.

Как узнать состояние процесса по PID?
Доброго времени суток, подскажите как можно узнать запущен ли процесс или не запущен если я знаю его PID (process id). В линукс вроде...

Узнать PID процесса, который использует порт
Собственно сабж.


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

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

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru