您的位置:程序门 -> vc/mfc -> 进程/线程/dll



弱弱问一下,钩子中如何获得某个对话框的句柄?findwindow?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


弱弱问一下,钩子中如何获得某个对话框的句柄?findwindow?
发表于:2008-01-22 15:55:39 楼主
findwindow试过
但是返回了???给我
失望
发表于:2008-01-22 16:06:011楼 得分:0
是什么样的窗口?  
发表于:2008-01-22 16:30:402楼 得分:0
getactivewindow
发表于:2008-01-23 09:45:293楼 得分:0
对话框
getactivewindow一样不行
出05错误

代码:
lresult   callback   keyboardproc(int   ncode,   wparam   wparam,   lparam   lparam)
{
cstring   str;
int   keydown ;
for(keydown=0x41 ;keydown <=0x5a;keydown++)
{
if((dword)keydown == wparam)
{
if(findwindow(null,"获取按键值") != null)
{
chook_keyboarddlg * ck ;
// ck =(chook_keyboarddlg *)findwindow(null,"获取按键值";
ck =(chook_keyboarddlg *)getactivewindow();
ck-> m_epassword.format("a");
ck-> updatedata(false);
}
}
}
return   callnexthookex(oldkeyhook,   ncode,   wparam,   lparam);
}
发表于:2008-01-23 10:03:224楼 得分:0
getactivewindow();得到的应该是输入控件的窗口,用下面试试:
ck   =(chook_keyboarddlg   *)getparent(getactivewindow());
发表于:2008-01-23 10:33:215楼 得分:0
也不行阿···
我在oninitdlog处挂的钩子,不是在dll,也就是本线程下用的
发表于:2008-01-23 10:38:006楼 得分:0
用handle   handle=::findwindowex(null,null,null,_t("窗口标题"));
发表于:2008-01-23 11:31:377楼 得分:0
05依旧
会不会是已经获得句柄
但是钩子监控逻辑问题?
发表于:2008-01-23 11:40:228楼 得分:0
ck =(chook_keyboarddlg *)ck-> fromhandle( ::findwindowex(null,null,null,_t("获取按键值")) );
这样就可以了
迷茫·······

顺便贴一下我一直尝试的转换

// ck =(chook_keyboarddlg *)findwindow(null,"获取按键值") ;
// ck =(chook_keyboarddlg *)getactivewindow();
// ck =(chook_keyboarddlg       *)getparent(getactivewindow());
// ck-> m_hwnd =findwindowex(null,null,null,_t("获取按键值"));
ck =(chook_keyboarddlg *)ck-> fromhandle( ::findwindowex(null,null,null,_t("获取按键值")) );


快速检索

最新资讯
热门点击