以前总是获取当前进程所在的目录,用 GetModuleFileName 即可。
如何在一进程中获取另一进程的 EXE 文件所在目录呢?
步骤如下:
(1) 先用 Remote Process Viewer 工具看看进程的窗体名;
(2) 获取进程 ID;
(3) 用 GetModuleFileName() 获取目录。
示例代码如下:
1 HWND hMXNavi = ::FindWindow(NULL,L"MXNavi"); 2 TCHAR tcNaviPath[MAX_PATH]; 3 DWORD dwProcessID = 0; 4 HMODULE hModuleMXNavi; 5 6 7 if(NULL != hMXNavi) 8 { 9 GetWindowThreadProcessId(hMXNavi,&dwProcessID); 10 hModuleMXNavi = (HMODULE)OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcessID); 11 GetModuleFileName(hModuleMXNavi,tcNaviPath,MAX_PATH); 12 RETAILMSG(1,(L"[ProcessCmdOneKeyNavi]Navi soft path: %s\r\n",tcNaviPath)); 13 } 14 else 15 { 16 }
时间: 2024-10-17 06:22:28