Форум: "WinAPI";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
ВнизПуть к исполняемому файлу Найти похожие ветки
← →
VuDZ (2002-02-07 14:53) [4]извени, я ошибся, а в MSDN это не оговорено. что GetModuleFileName() возвращает имя модуля для _вызвавшего_ процесса - ты можешь узнать имя своего exe, всех dll которые загрузил но ничего более.
Но! есть выход GetModuleFileNameEx() делает то, что и надо:
#include <Windows.h>
#include <stdio.h>
#include <conio.h>
#include "psapi.h"
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
)
{
LPSTR lpStr = new char[MAX_PATH];
ZeroMemory(lpStr, MAX_PATH);
DWORD dwPID;
GetWindowThreadProcessId(hwnd, &dwPID);
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID);
GetModuleFileNameEx(hProc, (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), lpStr, MAX_PATH);
if (lpStr[0] != "\0")
{
printf(lpStr);
printf("\n");
}
return TRUE;
}
void main ()
{
EnumWindows(EnumWindowsProc, NULL);
getch();
}
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c