Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/187: Рейтинг темы: голосов - 187, средняя оценка - 4.72
37 / 37 / 5
Регистрация: 12.02.2010
Сообщений: 239

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

27.06.2010, 23:28. Показов 38798. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как узнать PID процесса зная его имя (например explorer'a)!!! Пол интернета перерыл, функции все не рабочие.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.06.2010, 23:28
Ответы с готовыми решениями:

Как узнать Handle или PID процесса, зная его имя и класс?
Как узнать Handle или PID процесса, зная его имя и класс?

Получить имя или pid родительского процесса
Имеется имя файла И pid процесса. Нужно узнать имя файла ИЛИ pid его родителя Добавлено через 3 минуты Если такой возможности нет,...

Узнать id родителя процесса
Как узнать id родителя процесса? Нашел информацию что можно вывести из структуры PROCESSENTRY32. Можно пример? Гугл выдает только как...

26
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
13.04.2013, 23:27
Студворк — интернет-сервис помощи студентам
Xantrax, интересный ты человек , я тебе выкладываю полностью откомпилированный проект , а ты мне по мимо этого задаёш вопросы , если я его компильнул и программа работает какие проблемы разобраться с кодом ?
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
13.04.2013, 23:32
Вот результат программы
Миниатюры
Узнать PID процесса  
0
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366
14.04.2013, 00:34
сконвертируйте за неё (только не указатель, а соберите новые данные типа char*) из WCHAR и скормите их функции
Что значит данные типа char? char - один символ, как его скормить функции? Вообще именно в этом я и просил помощи...
А вообще, можнт программе просто передать CString? Но опять же он не будет совпадать с const char
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,884
14.04.2013, 00:53
Что значит данные типа char? char - один символ, как его скормить функции? Вообще именно в этом я и просил помощи...
я написал char*, это не символ, а указатель

в общем поступите так, если совсем не знаете...
C++
1
2
3
   wchar_t* myWCHAR = L"A wide character string.";
   char* mychars = new char[wcslen(myWCHAR) + 1];
   wcstombs( mychars, myWCHAR, wcslen(myWCHAR) );
и скормите ей mychars, это будет нужный для неё указатель )

Добавлено через 4 минуты
ещё дополнение...

C++
1
2
3
4
   wchar_t* myWCHAR = L"A wide character string.";
   char* mychars = new char[wcslen(myWCHAR) + 1];
   wcstombs( mychars, myWCHAR, wcslen(myWCHAR) );
   mychars[wcslen(myWCHAR)]='\0';
а то не хорошо будет в общем случае
0
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366
14.04.2013, 01:18
если я его компильнул и программа работает какие проблемы разобраться с кодом ?
Понимаете Игорь, быть может я и не прав, но я считаю, что специфика написания консольной программы C++ и GUI программы на Visual C++ с использованием библиотеки MFC, немного разная. В вашей программе вы не употребляете такие классы, которые употребляю я, соответственно в моем проекте она бесполезна. Да, общий принцип написания из нее понять можно, но общий принцип и в моей программе был, меня интересовали частности.

Вот так у меня получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DWORD CMainPWDlg::PidByName(CString AProcessName)
{
    HANDLE pHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    PROCESSENTRY32 ProcessEntry;
    DWORD pid;
    ProcessEntry.dwSize = sizeof(ProcessEntry);
    BOOL Loop = Process32First(pHandle,&ProcessEntry);
    while(Loop)
    {
        if(strcmp(ProcessEntry.szExeFile,AProcessName)==0)
        {
            pid = ProcessEntry.th32ProcessID;
            CloseHandle(pHandle);
            return pid;
        }
        Loop = Process32Next(pHandle, &ProcessEntry);
    }
    return 0;
}
Добавлено через 7 минут
Ммм, теперь еще нужно сконвертировать DWORD в LPCSTR.
CString str;
str = L"notepad.exe";
/*PidByName(str);*/
DWORD nameprocess;
nameprocess = PidByName(str);
str.Empty();
str.Format(L"PID процесса блокнот: %d", nameprocess);
MessageBox(str,L"Информация",MB_OK|MB_IC ONINFORMATION); /*вот тут ошибка конвертирования const wchar_t[11] в LPCSTR*/
Добавлено через 16 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void CMainPWDlg::OnBtnClickedStart()
{
    CString str;
    str = L"notepad.exe";
    /*PidByName(str);*/
    DWORD nameprocess;
    nameprocess = PidByName(str);
    /*WCHAR sz[10];
    swprintf(sz,10,L"%d",nameprocess);*/
    str.Empty();
    str.Format(L"PID процесса блокнот: %d", nameprocess);
    MessageBox(str,L"Информация",MB_OK|MB_ICONINFORMATION);
}
Не могу вывести DWORD значение в MessageBox....
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
14.04.2013, 17:30
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstdlib>
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    
    DWORD dw=15;
char Mas[10];
 
itoa(dw,Mas,10);
 
MessageBoxA(0,Mas,"Info",MB_OK);    
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
1
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366
14.04.2013, 20:28
itoa(dw,Mas,10);
MessageBoxA(0,Mas,"Info",MB_OK);
Что-то у меня то ли руки кривые, то ли я дурак...
Ну, во-первых, itoa' was declared deprecated, но это warning черт с ним.
Во-вторых: CWnd::MessageBoxA' : function does not take 4 arguments
А при MessageBox(0,sz,L"Информация",MB_OK); у меня вообще приложение не хочет открываться...

Добавлено через 7 минут
Я с этими кодировками с ума сойду, у меня и обычный MessageBox(L"Тест",L"",MB_OK); не работает ((
Пишет, что CWnd::MessageBoxA' : cannot convert parameter 1 from 'const wchar_t [5]' to 'LPCTSTR
Что делать?

Добавлено через 18 минут
Ну, вот, вроде бы заработало, однако как чего с кодировками я так и не разобрался...((
C++
1
2
3
4
5
6
7
8
9
10
void CMainPWDlg::OnBtnClickedStart()
{
    CString str;
    str = L"notepad.exe";
    DWORD nameprocess;
    nameprocess = PidByName(str);
    char sz[20];
    itoa(nameprocess,sz,10);
    MessageBox(sz, "sdfsfs", MB_OK);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2013, 20:28

Как узнать имя запущенного процесса
Как узнать имя запущенного процесса и записать его имя в строку (LPWSTR)?

Как узнать состояние дочернего процесса
Здравствуйте. Есть приложение, которое запускает разные дочерние процессы. Мне нужно узнавать, когда дочернее приложение завершилось. Я бы...

Библиотеки процесса, защита от изменения процесса
Здраствуйте. 1) Как можно получить список библиотек (dll, asi), которые уже загружены в процесс какой-то программы? Мне нужно чекать...

Узнать PID процесса
Так я узнаю PID процесса, - unsigned long PIDByName(AnsiString AProcessName) { HANDLE pHandle =...

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


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru