Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2014, 15:47   #11
pj-infest
Пользователь
 
Аватар для pj-infest
 
Регистрация: 09.10.2010
Сообщений: 25
По умолчанию

в принципе у меня уже есть простая GetModuleFileName

http://msdn.microsoft.com/ru-ru/wind...=vs.85%29.aspx

не могу разобраться с параметром
_In_opt_ HMODULE hModule
передаю туда хендл на Нужный мне процесс, но нужно передать тип HMODULE.
Не подскажите откуда мне достать эту переменную для нужного процесса?
pj-infest вне форума Ответить с цитированием
Старый 28.11.2014, 17:25   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

перечислить модули нужного вам процесса.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.11.2014, 21:26   #13
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от pj-infest Посмотреть сообщение
откуда мне достать эту переменную для нужного процесса?
Никак, GetModuleFileName работает только с модулями текущего процесса.
waleri вне форума Ответить с цитированием
Старый 28.11.2014, 22:27   #14
pj-infest
Пользователь
 
Аватар для pj-infest
 
Регистрация: 09.10.2010
Сообщений: 25
По умолчанию

я нашел решение

GetModuleFileNameEx

я думал что эта функция будет доступна из библиотеки windows.h

я подключил следующую библиотеку и все заработало
#include <Psapi.h>

процедура которая принимает ID и возвращает полный путь к процессу

Код:
std::string FunctionalSet::GetProcCommandLine(_int32 ProcessID)
{
	setlocale(0, "");
	char pName[100], path[256] = "";
	HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, ProcessID);
	HMODULE mod; 
	
	EnumProcessModules(pHandle, &mod, sizeof(HMODULE), NULL);
	
	GetModuleFileNameEx(pHandle, mod, path, 255);

	return path;
}

Спасибо за помощь в решении моей проблемы
pj-infest вне форума Ответить с цитированием
Старый 30.11.2014, 03:01   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от pj-infest Посмотреть сообщение
я нашел решение

GetModuleFileNameEx

я думал что эта функция будет доступна из библиотеки windows.h

я подключил следующую библиотеку и все заработало
#include <Psapi.h>

процедура которая принимает ID и возвращает полный путь к процессу

Код:
std::string FunctionalSet::GetProcCommandLine(_int32 ProcessID)
{
	setlocale(0, "");
	char pName[100], path[256] = "";
	HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, ProcessID);
	HMODULE mod; 
	
	EnumProcessModules(pHandle, &mod, sizeof(HMODULE), NULL);
	
	GetModuleFileNameEx(pHandle, mod, path, 255);

	return path;
}
Спасибо за помощь в решении моей проблемы
советую читать документацию внимательно:
Код:
GetModuleFileNameEx(pHandle, NULL, path, 255);
достаточно, ибо:
Цитата:
hModule [in, optional]

A handle to the module. If this parameter is NULL, GetModuleFileNameEx returns the path of the executable file of the process specified in hProcess.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.12.2014, 19:05   #16
pj-infest
Пользователь
 
Аватар для pj-infest
 
Регистрация: 09.10.2010
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
советую читать документацию внимательно:
Код:
GetModuleFileNameEx(pHandle, NULL, path, 255);
достаточно, ибо:

Цитата:
hModule [in, optional]

A handle to the module. If this parameter is NULL, GetModuleFileNameEx returns the path of the executable file of the process specified in hProcess.
понял, спасибо
pj-infest вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение пути к файлу из ListBox artemavd Общие вопросы Delphi 8 07.08.2010 15:27
Достать директории из полного пути к файлу Kuzya59 Общие вопросы Delphi 7 23.09.2009 13:08
Получение пути к файлу путем перетаскивания k1r1ch Общие вопросы Delphi 7 29.06.2009 21:19
Как из полного пути к файлу получить имя файла с расширением uraura Компоненты Delphi 2 20.03.2009 15:53
Определение полного пути папок TreeView vitawt Общие вопросы Delphi 8 22.02.2009 15:13