IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Дескриптор и имя модуля
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Нужно по введённому дескриптору, имени или полному имени модуля получить два других параметра.


TCHAR lpProcName[256]=TEXT("");
wchar_t pszStrPID[16];
// вводим имя модуля - получаем дескриптор
GetWindowText(hEditNMod,(LPWSTR)lpProcName,30);
wsprintf(pszStrPID,_T("%d"),GetModuleHandle(lpProcName));//(TEXT("MSCTF.dll")));
SendMessage(hEditDMod,WM_SETTEXT, 0, (LPARAM)(LPCSTR)pszStrPID);

//и теперь как по дескриптору получить имя или полное имя модуля?



Сообщение отредактировано: 18192123 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
как по дескриптору получить имя или полное имя модуля?
Вот так:
  HMODULE hModule; // Это - чтоб потом не конвертировать обратно строку в HMODULE

// вводим имя модуля - получаем дескриптор
GetWindowText(hEditNMod,(LPWSTR)lpProcName,30);
wsprintf(pszStrPID,_T("%d"),(hModule = GetModuleHandle(lpProcName))); // запоминаем hModule
SendMessage(hEditDMod,WM_SETTEXT, 0, (LPARAM)(LPCSTR)pszStrPID);

GetModuleFileNameW(hModule, lpProcName, 256); // <--- вот так получаем полное имя модуля
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Скажи пожалуйста, а можно по дескриптору получить просто имя модуля, без пути?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, это придется разбивать на части полное имя... Либо PathFindFileName, либо что-то типа fnsplit

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 23.10.2008 3:31) *

....PathFindFileName

Снова что-то напутала....Ошибка:
1>main.obj : error LNK2019: unresolved external symbol __imp__PathFindFileNameW@4 referenced in function "void __cdecl OnClickTerminateJob(struct HWND__ *)" (?OnClickTerminateJob@@YAXPAUHWND__@@@Z)


GetWindowText(hEditPathMod,(LPWSTR)lpProcName,256);//по полному имени всё остальное
wsprintf(pszStrPID,_T("%d"),(hModule = GetModuleHandle(lpProcName))); // запоминаем hModule
SendMessage(hEditDMod,WM_SETTEXT, 0, (LPARAM)(LPCSTR)pszStrPID);
wsprintf(pszStrPID,_T("%d"), (PathFindFileName(lpProcName)));
SendMessage(hEditNMod,WM_SETTEXT, 0, (LPARAM)(LPCWSTR)pszStrPID);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Проблема при линковке, линкер просто не может найти реализацию PathFindFileName.
Цитата(MSDN)
Import library shlwapi.lib
Подключила эту библиотеку?

Добавлено через 10 мин.
Хотя можно сделать и совсем просто:
	wchar_t s[200];

// здесь получила в s полное имя модуля...

wchar_t *just_name = s + wcslen(s) - 1;
for(; *just_name != (wchar_t)92; --just_name); // ну, или сравниваем с '\\'
just_name += 1;

// just_name указывает на первый символ имени файла ...


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 23.10.2008 15:43) *

Проблема при линковке, линкер просто не может найти реализацию PathFindFileName.
Подключила эту библиотеку?

Добавлено через 10 мин.
Хотя можно сделать и совсем просто:
	wchar_t s[200];

// здесь получила в s полное имя модуля...

wchar_t *just_name = s + wcslen(s) - 1;
for(; *just_name != (wchar_t)92; --just_name); // ну, или сравниваем с '\\'
just_name += 1;

// just_name указывает на первый символ имени файла ...


Я добавила #include "Shlwapi.h"...
p.s. Спасибо за альтернативный вариант!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 22.10.2020 19:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name