通过 CWnd * pWnd = GetForegroundWindow()可以获得当前活动进程的窗体指针
然后通过pWnd ->GetWindowstext可以获取其标题,那么如何获取其全路径呢?
请各位大虾帮忙。

解决方案 »

  1.   

    WINAPI DWORD GetModuleFileName( 
      HMODULE hModule,
      LPWSTR lpFilename, 
      DWORD nSize
    );
      

  2.   

    lz是要得到自身进程的exe路径还是其他外部程序的路径?
      

  3.   

    // 当前进程路径使用GetModuleFileName();得到外部进程路径使用GetModuleFileNameEx();#include <Psapi.h>
    #pragma comment(lib, "psapi.lib")// 得到外部进程B.exe的路径,也可以使用EnumProcess来枚举进程HWND hWnd = ::FindWindow(NULL, _T("B"));
    if(hWnd)
    {
    DWORD dwProcessId = 0;
    ::GetWindowThreadProcessId(hWnd, &dwProcessId);
    HANDLE handle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
    if(handle)
    {
    TCHAR szPath[MAX_PATH] = {0};
    GetModuleFileNameEx(handle, NULL, szPath, MAX_PATH);
    AfxMessageBox(szPath);
    }
    }