首先使用GetWindowThreadProcessId获取该窗口的进程ID, 然后再通过进程ID来获取该进程的信息就可以取得程序的路径信息了, 应该就是你说的程序名称了吧.
具体的方法NT系统和9x的系统下是不同的.需要注意一下.
下面给出NT下面的方法, 这个是很早之前做的一个函数了.
DWORD GetProcessBaseModuleName(DWORD ProcessID, LPSTR ProcessFileName)
{
PROCESS_MEMORY_COUNTERS ProcessMemoryInfo;
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, false, ProcessID);
if(NULL != hProcess)
{
HMODULE hMod;
DWORD cbNeeded;
if(EnumProcessModules(hProcess, &hMod, sizeof(HMODULE), &cbNeeded))
{
GetModuleFileNameEx(hProcess, hMod, ProcessFileName, 256);
if (ProcessFileName == NULL) return 0;
DWORD cb = sizeof(PROCESS_MEMORY_COUNTERS);
GetProcessMemoryInfo(hProcess, &
rocessMemoryInfo, cb);
}
CloseHandle( hProcess );
}
return ProcessMemoryInfo.WorkingSetSize;
}
编译断代码需要加上PSAPI.H以及链接PSAPI.LIB静态库.