如何使用getForegroundWindow函数获取模块
How to get ModuleBaseName using GetForegroundWindow function?
我可以从getForegroundWindow函数中获取处理。我想获得Basename手柄。因此,我使用了GetModelbasename功能。但是我想这个功能无法正常工作。
TCHAR TitleName[MAX_PATH] = TEXT("");
HANDLE hFirst = GetForegroundWindow();
GetModuleBaseName(hFirst, NULL, TitleName, MAX_PATH);
_tprintf(TEXT("%s n"), TitleName);
告诉我,有什么问题?
您做错了,这就是为什么它返回false和getlastror将返回error_invalid_handle(6)。
HWND WINAPI GetForegroundWindow(void);
将返回当前的前景窗口,并将返回hwnd类型的窗口句柄。
您可以这样做以检索应用程序的文件名:
TCHAR szName[MAX_PATH];
GetModuleBaseName(GetCurrentProcess(), GetModuleHandle(NULL), szName, MAX_PATH);
此外,您还可以使用getModuleFileName或getMappappingFilename检索应用程序的完整路径
编辑:他也想做其他事情。要检索另一个过程的路径,您必须使用一个过程ID打开该过程。例如,如果9912是Chrome的过程ID,则可以执行以下代码来检索其路径
HANDLE process = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, 9912);
if (process)
{
char file_path[MAX_PATH];
if (::GetModuleFileNameEx(process, nullptr, file_path, MAX_PATH))
{
std::cout << file_path << std::endl;
}
else
{
std::cout << "Error retrieving path" << std::endl;
}
::CloseHandle(process);
}
相关文章:
- 获取 LLVM 模块中的所有值
- 无法在 XmlHttpRequest 模块上获取断点(Javascript 引擎/XHR 请求)
- 使用 libunwind 获取模块地址
- 获取模块文件名 Win 7/Win 10 上的不同行为
- 哪种方法更好获取静态链接DLL的模块句柄(HMODULE) - 使用GetModuleHandleEx()或LoadLibrary()?
- 使用 Module32First 获取模块的 modBaseAddr 不返回任何内容
- 如何使用getForegroundWindow函数获取模块
- 获取 .NET 模块的图像大小
- Apache模块-获取请求正文
- 获取传递给子模块(C#.NET dll)中的主模块(VC++ exe)的参数
- 在C++中获取 Linux 内核模块的详细信息
- 获取模块文件名不返回路径
- 从节点.js模块获取 D9025 警告和 C1083 错误...我没主意了
- 如何在64位应用程序中获取模块大小
- 如何获取当前运行模块的sc_module_name
- 从其他进程获取模块句柄
- 嵌入式Python - [_socket获取模块方法,但socket.py:缺少方法]
- 从另一个模块获取派生类指针的接口
- 获取模块大小
- 嵌入式Python:从导入的模块获取func obj