社区
进程/线程/DLL
帖子详情
知道系统进程的ID,如何能获得该进程主窗口的句柄呢?急,最好能有原程序!谢了!
MiT
2001-05-10 10:57:00
加精
...全文
139
10
打赏
收藏
知道系统进程的ID,如何能获得该进程主窗口的句柄呢?急,最好能有原程序!谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jinxi_gao
2001-09-30
打赏
举报
回复
fhfdh
Brierbird
2001-06-26
打赏
举报
回复
FB2000的函数OK!!!解决了我的一个问题哪:)
不解
2001-05-24
打赏
举报
回复
如果仅仅是类型转换问题,是否可以考虑强制性类型转换。 记得第一个参数类型应该是WNDENUMPROC.
duz
2001-05-12
打赏
举报
回复
你在哪里用了小写的bool了?c/c++可是大小些敏感的。
不过看不到有哪里的错误会引起这个信息,而且bool类型到int类型的转化也不会引起错误信息。确认一下你的出错信息?
MiT
2001-05-11
打赏
举报
回复
错误信息是不能转换bool类型到int类型!
fb2000
2001-05-11
打赏
举报
回复
好象是BOOL CALLBACK YourEnumProc前面的中文空格引起的。
下面这段代码是测试通过后直接粘过来的。
#include "windows.h"
typedef struct tagWNDINFO
{
DWORD dwProcessId;
HWND hWnd;
} WNDINFO, *LPWNDINFO;
BOOL CALLBACK YourEnumProc(HWND hWnd, LPARAM lParam)
{
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
LPWNDINFO pInfo = (LPWNDINFO)lParam;
if(dwProcessId == pInfo->dwProcessId)
{
pInfo->hWnd = hWnd;
return FALSE;
}
return TRUE;
}
HWND GetProcessMainWnd(DWORD dwProcessId)
{
WNDINFO wi;
wi.dwProcessId = dwProcessId;
wi.hWnd = NULL;
EnumWindows(YourEnumProc,(LPARAM)&wi);
return wi.hWnd;
}
fb2000
2001-05-11
打赏
举报
回复
错误消息是什么?
MiT
2001-05-11
打赏
举报
回复
但编译的时候在 EnumWindows这一句出错???
fb2000
2001-05-11
打赏
举报
回复
typedef struct tagWNDINFO
{
DWORD dwProcessId;
HWND hWnd;
} WNDINFO, *LPWNDINFO;
BOOL CALLBACK YourEnumProc(HWND hWnd,LPARAM lParam)
{
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
LPWNDINFO pInfo = (LPWNDINFO)lParam;
if(dwProcessId == pInfo->dwProcessId)
{
pInfo->hWnd = hWnd;
return FALSE;
}
return TRUE;
}
HWND GetProcessMainWnd(DWORD dwProcessId)
{
WNDINFO wi;
wi.dwProcessId = dwProcessId;
wi.hWnd = NULL;
EnumWindows(YourEnumProc,(LPARAM)&wi);
return wi.hWnd;
}
duz
2001-05-11
打赏
举报
回复
一个进程可以拥有很多主窗口,也可以不拥有主窗口,所以这样的函数是不存在的,所幸的是,相反的函数是有的。
所以我们可以调用EnumWindows来判断所有的窗口是否属于这个进程。
BOOL CALLBACK YourEnumProc(HWND hwnd,LPARAM lParam)
{
DWORD dwProcessId;
GetWindowThreadProcessId(hwnd,&dwProcessId);
if(dwProcessId==(DWORD)lParam)
{
printf("Window %x is a main window of process %d\n",hwnd,lParam);
}
return TRUE;
}
EnumWindows(YourEnumProc,(LPARAM)dwProcessId);
VC
进程
ID
获得
主
窗口
句柄
获得
进程
名
VC
获得
进程
ID
获得
主
线程
ID
获得
窗口
句柄
获得
主
窗口
获得
进程
名 1.
窗口
类名
窗口
句柄
窗口
标题
窗口
句柄
HWND FindWindow( LPCTSTR lpClassName, //
窗口
类名 可用 VC或者VS自带的Spy++查看 LPCTSTR lpWindowName //...
通过
进程
id
获取
主
窗口
句柄
及
主
窗口
标题
通过
进程
id
获取到所在
进程
的
主
窗口
的
句柄
,及通过该
主
窗口
句柄
获取当前
主
窗口
的标题,
进程
名;这是一个demo例程,仅供参考
Windows游戏编程系列之1:GUI
窗口
界面编程及游戏入门实战
我将带领大家来
系统
学习Windows的
窗口
编程,包括消息、
窗口
、GDI绘图、游戏开发等。 本课程比较基础,非常适合初学者入门,读者可以边学习边实践。 具体的章节目录和课程内容如下所示: ---------------------------...
外部程序嵌入到Qt
进程
界面---附源码
项目需要将一个外部软件...2)根据
进程
id
号得到
主
窗口
句柄
:通常情况下一个
进程
内有多个
窗口
句柄
,还需要从得到的N个
句柄
中找到
主
窗口
句柄
(下面会统一讲到); 3)将HWND转为W
Id
,进而将外部程序嵌入QWindow、w
id
get:
VB根据
窗口
标题强行关闭指定
窗口
可以强行关闭 含有标题含有指定文字的
窗口
!很强大!!!!你懂得!
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章