#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>
int main(int argc, char* argv[])
{
HANDLE snapshot = ::CreateToolhelp32Snapshot(
TH32CS_SNAPMODULE, 0);
if (snapshot != INVALID_HANDLE_VALUE)
{
MODULEENTRY32 me32{};
me32.dwSize = sizeof(MODULEENTRY32);
if (::Module32First(snapshot, &me32))
{
do
{
std::wcout << me32.szExePath << std::endl;
} while (::Module32Next(snapshot, &me32));
}
::CloseHandle(snapshot);
}
return EXIT_SUCCESS;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKI2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgPHRsaGVscDMyLmg+CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7CiAgSEFORExFIHNuYXBzaG90ID0gOjpDcmVhdGVUb29saGVscDMyU25hcHNob3QoCglUSDMyQ1NfU05BUE1PRFVMRSwgMCk7CgogIGlmIChzbmFwc2hvdCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKICB7CglNT0RVTEVFTlRSWTMyIG1lMzJ7fTsKCW1lMzIuZHdTaXplID0gc2l6ZW9mKE1PRFVMRUVOVFJZMzIpOwoJaWYgKDo6TW9kdWxlMzJGaXJzdChzbmFwc2hvdCwgJm1lMzIpKQoJewoJICBkbwoJICB7CgkJc3RkOjp3Y291dCA8PCBtZTMyLnN6RXhlUGF0aCA8PCBzdGQ6OmVuZGw7CgkgIH0gd2hpbGUgKDo6TW9kdWxlMzJOZXh0KHNuYXBzaG90LCAmbWUzMikpOwoJfQoKCTo6Q2xvc2VIYW5kbGUoc25hcHNob3QpOwogIH0KCiAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKfQ==