通过进程ID找到窗口句柄
来源:互联网 发布:转换音频格式的软件 编辑:程序博客网 时间:2024/05/30 04:34
关键系统函数:
(一)BOOL EnumWindows(
WNDENUMPROC lpEnumFunc, //回调函数指针
LPARAM lParam //传递给回调函数的参数
);
typedef BOOL CALLBACK lpEnumFunc(HWND hwnd, LPARAM lParam);
该函数枚举所有顶层窗口。如果lpEnumFunc返回值为FALSE,则中止枚举。
如果函数成功,返回值为非零;如果函数失败,返回值为零
(二)
DWORD GetWindowThreadProcessId(
HWND hWnd, // 窗口句柄
LPDWORD lpdwProcessId //【OUT】指向进程ID变量的地址。
);
获取创建窗口的进程ID,返回值为创建窗口的线程ID
代码实现:
typedef struct EnumFunArg
{
HWND hWnd;
DWORD dwProcessId;
}EnumFunArg;
BOOL CALLBACK lpEnumFunc(HWND hwnd, LPARAM lParam)
{
EnumFunArg *pArg = lParam;
DWORD processId;
GetWindowThreadProcessId(wnd, &ProcessId);
if( processId == pArg->dwProcessId )
{
arg->hWnd = hwnd;
return TRUE;
}
return FALSE;
}
HWND myGetWindowByProcessId( DWORD dwProcessId )
{
lEnumFunArg arg;
arg.dwProcessId = dwProcessId;
arg.hWnd = 0;
EnumWindows(lpEnumFunc, (LPARAM)&arg );
return arg.hWnd;
}
注意:
一个进程可能创建多个窗口,比如,在程序里使用MessageBox.
- 通过进程ID找到窗口句柄
- 通过进程找到主窗口的句柄
- 通过进程ID获得主窗口句柄
- 通过进程ID获得主窗口句柄
- 通过进程Id获取窗口句柄
- 通过进程id获取窗口句柄
- 通过Windows进程ID获取窗口句柄
- 通过创建窗口进程的ID来查找窗口句柄
- 通过进程ID获得该进程主窗口的句柄
- 通过进程ID获得该进程主窗口的句柄
- 通过进程ID获取进程主窗口句柄
- 通过进程ID获得该进程主窗口的句柄
- 通过进程ID获得该进程主窗口的句柄或者获得特定窗口句柄
- 通过进程ID获取最顶层窗口句柄
- VC怎么通过进程ID得到窗口句柄
- 通过进程号ID获得窗口的句柄
- 通过进程号ID获得窗口的句柄 .
- 通过进程号ID获得窗口的句柄
- linux 常用命令
- 我的周公解梦
- Python 中如何判断变量是否已经定义
- 帮母亲写的发言稿
- php.ini的错误处理推荐设置
- 通过进程ID找到窗口句柄
- 最近比较忙
- 04/12/09
- OC-RESUME
- CONVERSION_EXIT_ALPHA_INPUT
- 梦里花落知多少
- asp php jsp asp.net 的比较
- 很虎的搞明白String创建对象的例子
- Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题