#include <windows.h>
#include <stdio.h>
#include <psapi.h>
#include <tlhelp32.h>
#pragma comment(lib, "Psapi.lib")
void getProcessPathByName(char* name)
{
PROCESSENTRY32 entry;
entry.dwSize = sizeof(PROCESSENTRY32);
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
HANDLE processHandle = NULL;
TCHAR filename[MAX_PATH];
if (Process32First(snapshot, &entry) == TRUE)
{
while (Process32Next(snapshot, &entry) == TRUE)
{
if (_stricmp(entry.szExeFile, name) == 0)
{
processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, entry.th32ProcessID);
if (processHandle != NULL) {
if (GetModuleFileNameEx(processHandle, NULL, filename, MAX_PATH) == 0) {
printf("Failed to get module filename.\n");
}
else {
printf("Module filename is: %s\n", filename);
//PrintFileVersion(filename);
}
CloseHandle(processHandle);
}
else {
printf("Failed to open process.\n");
}
}
}
}
CloseHandle(snapshot);
}
int main()
{
getProcessPathByName("LINE.exe");
system("PAUSE");
}