进程中句柄在另一个进程中能用吗?
在一个进程中的句柄,比如窗口句柄,如果通过DLL共享数据段(如钩子函数),那么另一个进程能使用这个共享过来的窗口句柄吗?看下以下代码
.data
Dll_BenJvBing HWND ?
GouZiJvBing DWORD ?
.data?
ChuangKouJvBing HWND ?
XiaoXiBiaoShi DWORD ?
.code
GouZiGuoCheng proc XiaoXiChuLiMoShi:DWORD,wParam:DWORD,lParam:DWORD
invoke PostMessage,ChuangKouJvBing,XiaoXiBiaoShi,wParam,lParam
这里用了句柄ChuangKouJvBing,但钩子回调函数是在其他进程中使用的,所以此句柄是由另一个进程使用,但这个句柄是由安钩子函数的进程给出的,使用者进程能用吗?
invoke CallNextHookEx,edx,XiaoXiChuLiMoShi,wParam,lParam
xor eax,eax
ret
GouZiGuoCheng endp
AnZhuangGouZi proc _ChuangKouJvBing:DWORD,_XiaoXiBiaoShi:DWORD
push _ChuangKouJvBing
pop ChuangKouJvBing
push _XiaoXiBiaoShi
pop XiaoXiBiaoShi
invoke SetWindowsHookEx,WH_MOUSE,OFFSET GouZiGuoCheng,Dll_BenJvBing,NULL
mov GouZiJvBing,eax
ret
AnZhuangGouZi endp
ShanChuGouZi proc
invoke UnhookWindowsHookEx,GouZiJvBing
ret
ShanChuGouZi endp
[ 本帖最后由 hsh188d88452 于 2011-3-23 19:47 编辑 ]