hur.cn - 华软网

 热门搜索

enmuwindows的用法

  作者:未知    来源:网络    更新时间:2011/9/30
BOOL CALLBACK MyEnumProc(HWND hwnd, LPARAM lParam )  
{  
char sz[255];
DWORD ProcId;
int Sel;
GetWindowThreadProcessId(hwnd, &ProcId); 
wsprintf( sz,"进程名是%s ID2是%d ",pe32.szExeFile, ProcId); 
MessageBox(NULL,sz,sz,1);

if(ProcId==pe32.th32ProcessID)
{
wsprintf( sz,"窗口句柄是%x,传递的参数是%d ", hwnd, lParam); 
MessageBox(NULL,sz,sz,1);
return TRUE;
}
return FALSE;
}
///////////////////////
通过这个回调函数枚举出所有的进程,用MessageBox输出窗口句柄 和 由GetWindowThreadProcessId得到的id 。
为什么 得到的id总是不变的?
---华软 网友回答---
C++">
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
DWORD dwPID;
DWORD dwSize = MAX_LOADSTRING;
TCHAR szInfo[MAX_PATH];
TCHAR szPath[MAX_LOADSTRING];
GetWindowThreadProcessId(hwnd, &dwPID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID);
QueryFullProcessImageName(hProcess, 0, szPath, &dwSize);

wsprintf(szInfo, TEXT("进程名是: %s, PID是: %d, 窗口句柄是: %x, 传递的参数是: %d"), szPath, dwPID, hwnd, lParam);
MessageBox(hwnd, szInfo, TEXT("Info"), MB_ICONINFORMATION);

return TRUE;
}

---华软网友回复---
程序启动多次 进程号 有可能是一样的
---华软网友回复---
引用 1 楼 huangcheng90 的回复:
C/C++ code

BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
    DWORD dwPID;
    DWORD dwSize = MAX_LOADSTRING;
    TCHAR szInfo[MAX_PATH];
    TCHAR szPath[MAX_LOADSTRING];
    GetWi……


/////
xp里面没有 QueryFullProcessImageName。


---华软网友回复---
引用 3 楼 pyx93 的回复:
引用 1 楼 huangcheng90 的回复:
C/C++ code

BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
DWORD dwPID;
DWORD dwSize = MAX_LOADSTRING;
TCHAR szInfo[MAX_PATH];
TCHAR szPath[MAX_LOADSTRING];
……

GetProcessImageFileName      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。