如何通过当前窗口的窗口句柄得到它所属进程的进程名(xx.exe) 如题,比如我现在得到了一个对话框的窗口句柄,但是我不知道它是MSN的对话框还是QQ的聊天对话框。我想通过获得这个对话框所属进程的进程名来判断,该如何实现呢? 在线``````````````` 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用 GetWindowThreadProcessId 可以获取进程的 ID 值,然后使用 ID 值来获取进程的文件名。 WindowHandle=::FindWindow("#32770",NULL);//取得一个对话框的窗口句柄。 //判断该窗口是否是QQ的聊天窗口 DWORD lpdwProcessId; ::GetWindowThreadProcessId(QQWindowHandle,&lpdwProcessId); if(lpdwProcessId !=NULL) { HANDLE QQprocessHandle = OpenProcess(PROCESS_CREATE_PROCESS,TRUE,lpdwProcessId); //下面应该怎么做了呢?我不懂了 } 哦,上面写错了一点 QQWindowHandle=::FindWindow("#32770",NULL);//取得一个对话框的窗口句柄。 //判断该窗口是否是QQ的聊天窗口 DWORD lpdwProcessId; ::GetWindowThreadProcessId(QQWindowHandle,&lpdwProcessId); if(lpdwProcessId !=NULL) { HANDLE QQprocessHandle = OpenProcess(PROCESS_CREATE_PROCESS,TRUE,lpdwProcessId); //下面应该怎么做了呢?我不懂了 } GetWindowThreadProcessId 获得对应的进程ID,然后遍历EnumProcess,对比PID,得到进程名 GetWindowThreadProcessIdOpenProcess调用 psapi.dll 中的 EnumProcessModules 和 GetModuleFileNameEx。 看看这个贴:大侠帮忙,获取外部程序路径及文件名的方法http://topic.csdn.net/u/20080808/17/a5b8136d-6c26-4050-bb4c-55bb481ff523.html ActiveX 窗口创建问题 线性四叉树编码 高分求电子白板的选中和删除图元问题(有源码下载) 准备用VC做个视频监控,大家帮忙哦。 我用程序提取出了一个字符串,如何得到字符串的长度,并且显示出来呢? (100分)网络通信该如何加密? 关于窗口移动的简单问题,在线等待...... 求购现成门禁系统及原代码 MediaPlayer 叠加文字或简单图形问题 一个制作安装程序的问题!如何安装从网上下载的ocx控件! 进程外组件连接点,advise返回E_NOTIMPL 有没有做图像物体识别的,指点一下啊
WindowHandle=::FindWindow("#32770",NULL);//取得一个对话框的窗口句柄。
//判断该窗口是否是QQ的聊天窗口
DWORD lpdwProcessId;
::GetWindowThreadProcessId(QQWindowHandle,&lpdwProcessId);
if(lpdwProcessId !=NULL)
{
HANDLE QQprocessHandle = OpenProcess(PROCESS_CREATE_PROCESS,TRUE,lpdwProcessId);
//下面应该怎么做了呢?我不懂了
}
//判断该窗口是否是QQ的聊天窗口
DWORD lpdwProcessId;
::GetWindowThreadProcessId(QQWindowHandle,&lpdwProcessId);
if(lpdwProcessId !=NULL)
{
HANDLE QQprocessHandle = OpenProcess(PROCESS_CREATE_PROCESS,TRUE,lpdwProcessId);
//下面应该怎么做了呢?我不懂了
}
OpenProcess
调用 psapi.dll 中的 EnumProcessModules 和 GetModuleFileNameEx。
http://topic.csdn.net/u/20080808/17/a5b8136d-6c26-4050-bb4c-55bb481ff523.html