GetModuleFileNameEx fails
GetModuleFileNameEx fails
本文关键字:fails GetModuleFileNameEx 更新时间:2023-10-16
我想制作一个程序,该程序获取创建打开窗口的程序的名称:
#include <iostream>
using namespace std;
#include <windows.h>
#include <Psapi.h>
#pragma comment(lib, "Psapi.lib")
int main()
{
system("color 1f");
DWORD dwProcessId;
DWORD dwThreadId ;
while(1)
{
Sleep(2000);
HWND hForg = GetForegroundWindow();
dwThreadId = GetWindowThreadProcessId(hForg, &dwProcessId);
//cout << "Thread Id: " << dwThreadId << endl;
//cout << "Process Id: " << dwProcessId << endl;
DWORD dwDesiredAccess = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ;
bool bInheritHandle = false;
HANDLE hProcess = OpenProcess(dwDesiredAccess,
bInheritHandle, dwProcessId);
if(INVALID_HANDLE_VALUE == hProcess)
cout << "Failed to open process!" << endl;
HMODULE hMod = (HMODULE)GetWindowLongPtr(hForg, GWLP_HINSTANCE);
if(!hMod)
cout << "Null Module!" << endl;
char szModFileName[MAX_PATH];
GetModuleFileNameEx(hProcess, (HMODULE)hMod, szModFileName, MAX_PATH);
char szWindowName[MAX_PATH];
GetWindowText(hForg, szWindowName, MAX_PATH);
cout << "Window Name: " << szWindowName << endl;
cout << "Created by: " << szModFileName << endl << endl;
}
cout << endl << endl << endl;
return 0;
}
当我运行程序时,它可以工作,但它从不检索程序的名称,而是检索可视化c++程序的名称???!!!任何人都可以编辑或帮助我的代码吗。thnx提前
INVALID_HANDLE_VALUE
被定义为-1
,而如果函数失败,OpenProcess将返回NULL。我不知道如果给定NULL进程句柄,GetModuleFileNameEx
会做什么,但如果HMODULE为NULL,则会返回当前可执行文件的名称,因此它可能会对其他无效输入执行此操作。
根据MSDN的GetModuleFileNameEx
文档,建议通过调用GetProcessImageFileName
而不是GetModuleFileNameEx
来获取进程的可执行文件的名称。您必须先用OpenProcess
解决问题。
相关文章:
- Travis-CI Complex Makefile fails
- OpenCV: fs.open fails
- GetProcAddress fails
- NetUserGetInfo fails
- C++ - bind() fails
- MS Detours - DetourAttach fails
- ld fails to find glfw3
- Visual Studio 2017 .Net Core 2.0 Angular Publish Fails
- SHGetKnownFolderItem - fails on Wow64
- C++ GetModule文件名不会返回正确的字符串
- IVssBackupComponents::InitializeForBackup fails
- strftime() fails on Raspberry Pi (Raspbian)
- c++ fails to find includes
- ASSERT(AfxGetThread() == NULL); fails
- SSL_CTX_load_verify_locations Fails with SSL_ERROR_NONE
- dijkstra_shortest_paths Boost Graph Lib 1.57.0 fails
- C++ MapViewOfFile fails
- D3D11CreateDeviceAndSwapChain Fails to succeed
- 窗口在进程启动前没有弹出 ->尝试了 sleep() 方法,但"fails"
- ace register_handler fails