Последние записи
- Сделать авторизацию пользователя в программе
- Сделать границы компонента edit – жирными?
- Как настроить адрес без указания на index.php?
- Чтение из Excel и валидация. Можно ли как-то ускорить данный процесс?
- Загрузить файл из папки с программой
- Компьютеры для бухгалтера и дизайнера. В чём разница?
- Удалить все повторения в строке
- Как в treeview узнать индекс узла по которому был click?
- Исходник программы «азбука Морзе»
- Рассылка. Выпуск 139
23rd
Авг
Получить идентификатор процесса и узнать полуный путь до файла этого процесса. c/c++
Posted by Chas under Пост-обзор
Пишу небольшую программу, мне нужно чтобы она искала заданный мною выполняемый процесс. Подскажите какая это функция может сделать, быть может это win api функция?
Sazary:
код:
#include <stdio.h>
#include <TlHelp32.h>
#include <conio.h>
#include <string.h>
#include <psapi.h>
using namespace std;
int main()
{
HANDLE h,hp;
PROCESSENTRY32 pe;
int id;
bool bl,flag=false;
char name[256],str[256];
char path[MAX_PATH];
DWORD dw;
HMODULE hmod;
scanf(”%s”,name);
h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS|TH32CS_SNAPMODULE,0);
for(bl = Process32First(h, &pe); bl; bl = Process32Next(h, &pe))
{
strcpy(str,pe.szExeFile);
if(strcmp(str,name)==0)
{
printf(”Process found: %s\n”,str);
hp = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,false,pe.th32ProcessID);
EnumProcessModules(hp, &hmod,sizeof(hmod),&dw); // получаем первый модуль, связанный с процессом, то есть сам exe-файл
GetModuleFileNameEx(hp, hmod, path, MAX_PATH); // получаем путь к модулю
printf(”path: %s\n”,path);
CloseHandle(hp);
CloseHandle(h);
flag = true;
break;
}
}
CloseHandle(h);
if(!flag) printf(”Process not found”);
getch();
return 0;
}
Нужно прилинковать модуль psapi.
