55 lines
1.2 KiB
Markdown
55 lines
1.2 KiB
Markdown
+++
|
|
title = "win32specifics"
|
|
draft = false
|
|
tags = [
|
|
"",
|
|
"Users",
|
|
"jefklak",
|
|
"Downloads",
|
|
"pages",
|
|
"code",
|
|
"c",
|
|
"win32specifics"
|
|
]
|
|
date = "2013-12-12"
|
|
+++
|
|
# code:c >> Win32 API specifics
|
|
|
|
#### Get Loaded DLL info from given process
|
|
|
|
huidig proces: `GetCurrentProcessId()` - dit is een `HANDLE`.
|
|
|
|
```c++
|
|
CString ExceptionHandler::GetLoadedDllInfo() const
|
|
{
|
|
CString dlls = _T("");
|
|
HANDLE process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, GetCurrentProcessId());
|
|
if(process ###### NULL)
|
|
{
|
|
return dlls;
|
|
}
|
|
|
|
HMODULE hMods[1024];
|
|
DWORD cbNeeded;
|
|
BOOL modules = EnumProcessModules(process, hMods, sizeof(hMods), &cbNeeded);
|
|
if(!modules)
|
|
{
|
|
return dlls;
|
|
}
|
|
|
|
for (int i = 0; i < (cbNeeded / sizeof(HMODULE)); i++)
|
|
{
|
|
TCHAR szModName[MAX_PATH];
|
|
|
|
if (GetModuleFileNameEx(process, hMods[i], szModName, sizeof(szModName) / sizeof(TCHAR)))
|
|
{
|
|
dlls.Format(_T("%s, %s"), dlls, szModName);
|
|
}
|
|
}
|
|
|
|
CloseHandle(process);
|
|
return dlls;
|
|
}
|
|
```
|
|
|
|
Hiervoor moet je `#include <psapi.h>` includen én de psapi.lib file mee linken! Zie [EnumProcessModules MSDN](http://msdn.microsoft.com/en-us/library/windows/desktop/ms682631(v=vs.85).aspx). |