プロセスがロードしているモジュールの一覧を表示(C言語)

説明:

呼び出し元プロセスが現在ロードしている全てのモジュールのベース名とファイル名を列挙し、結果を表示する。

キーワード:

EnumProcessModules, GetModuleBaseName, GetModuleFileName

サンプルコード:

/* 現在のプロセスのがロードしているモジュールの一覧を表示 */
void DispModules()
{
	HANDLE hProcess;
	HMODULE ModuleHandles[1000];
	DWORD ModuleNum;
	DWORD ReturnSize;
	char BaseName[1000];
	char FileName[1000];
	DWORD i;

	/* 現在のプロセスのハンドルを取得 */
	hProcess = GetCurrentProcess();

	/* 現在のプロセスにロードされているモジュールのハンドルと数を取得 */
	EnumProcessModules(hProcess, ModuleHandles, sizeof(ModuleHandles), &ReturnSize);
	ModuleNum = ReturnSize / sizeof(HMODULE);

	/* 結果の表示 */
	for(i=0; i<ModuleNum; i++) {
		/* ベース名およびファイル名を取得 */
		GetModuleBaseName(hProcess, ModuleHandles[i], BaseName, 1000);
		GetModuleFileName(ModuleHandles[i], FileName, 1000);

		/* ベース名およびファイル名の表示 */
		printf("ベース名: '%s', ファイル名: '%s'\n", BaseName, FileName);
	}
}

(original text:1999/01/06 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。