win32 – 基于hwnd获取进程名字(GetModuleFileNameEx)

#include <Windows.h>
#include <psapi.h>

int main()
{
    DWORD process_ID = 0;
    WCHAR process_name[MAX_PATH] = {};
    HWND notepad = FindWindow(NULL, L"print.txt - Notepad"); 

    BOOL ERR = GetWindowThreadProcessId(notepad, &process_ID);
    HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, process_ID);
    GetModuleFileNameExW(hProcess, 0, process_name, MAX_PATH);

    return 0;
}

有了HANDLE,您可以使用GetModuleFileNameEx()GetProcessImageFileName()(XP +)或QueryFullProcessImageName()(Vista +)来获取该进程的EXE文件的完整路径和文件名:

WCHAR process_name[MAX_PATH] = {};
if (GetProcessImageFileNameW(hProcess, process_name, MAX_PATH))
{
    // use process_name as needed...
}
else
{
    // error handling ...
}
WCHAR process_name[MAX_PATH] = {};
DWORD size = MAX_PATH;
if (QueryFullProcessImageNameW(hProcess, 0, process_name, &size))
{
    // use process_name as needed...
}
else
{
    // error handling ...
}

 

原文链接: https://www.cnblogs.com/strive-sun/p/13722915.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    win32 - 基于hwnd获取进程名字(GetModuleFileNameEx)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/404830

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月25日 下午4:45
下一篇 2023年4月25日 下午4:45

相关推荐