• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > Activex控件安装钩子问题

Activex控件安装钩子问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了activex控件下载安装,安装activex控件,如何安装activex控件,阻止安装activex控件,怎么安装activex控件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: Activex控件安装钩子问题
描述:

activex初始化
BOOL CCodesApp::InitInstance()
{
BOOL bInit = COleControlModule::InitInstance();
if (bInit)
{
// TODO: Add your own module initialization code here.
MessageBox(NULL,"kk","k",MB_OK);
HWND hwnd=::FindWindow("IEFrame",NULL);
if(hwnd==NULL)
                hwnd=::FindWindow("360se_Frame",NULL);
                MessageBox(NULL,"测试1","",MB_OK);
DWORD dwThreadId=0;
if(hwnd!=NULL)
{
dwThreadId=::GetWindowThreadProcessId(hwnd,&dwThreadId);
MessageBox(NULL,"测试2","",MB_OK);
}
if(dwThreadId!=0)
{
//安装钩子
loghook=SetWindowsHookEx(WH_CALLWNDPROC,myloghook,0,dwThreadId);
MessageBox(NULL,"测试3","",MB_OK);
if(loghook==NULL)
{
MessageBox(NULL,"安装钩子失败","失败",MB_OK);
}
else
MessageBox(NULL,"安装钩子成功","成功",MB_OK);
}
}
return bInit;
}
钩子函数:
LRESULT CALLBACK myloghook(int iCode,WPARAM wParam,LPARAM lParam)
{
if(iCode==HC_ACTION)
{
PCWPSTRUCT msg=PCWPSTRUCT(lParam);
if(msg->message==WM_DEVICECHANGE)
{
if(msg->lParam==0x8000)//DBT_DEVICEARRIVAL
{
MessageBox(NULL,"有移动设备插入!","警告!",MB_OK);
}
}
}
  LRESULT ret=CallNextHookEx(loghook,iCode,wParam,lParam);
  return ret;
}
钩子函数不执行啊,SetWindowsHookEx的返回值为零,我要把activex控件加载到网页上,局部钩子不写在Dll里应该也可以啊?


解决方案1:

我想问两个问题:
一 
loghook=SetWindowsHookEx(WH_CALLWNDPROC,myloghook,0,dwThreadId);这里第三个参数你传0的话,系统会自调用当前模块中的myloghook方法吗?
二
按你的代码意图来看,你只是想截获指定窗口发送的消息,这样,第一个参数应该传递WH_GETMESSAGE(好象是这个,我记不清了),但你传递WH_CALLWNDPROC,你的意思是指定窗口的窗口过程被调用时就调用你的函数,这能行吗?

解决方案2:

在myloghook开始的地方下断点,看看能否断下

解决方案3:

你给第3个参数赋值看看,AfxGetInstanceHandle()

解决方案4:

SetWindowsHookEx(WH_CALLWNDPROC,myloghook,0,dwThreadId);
第3个参数不能为0。钩自己所在线程才为0。

解决方案5:

你可以把你的代码发给我,我帮你调试一下
gw_net@163.com


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ActiveX控件基于CSocket类的出错问题(baseclassundefined)
  • Activex的控件怎么传出数据来?
  • 如何取得ActiveX控件的窗口句柄和他的父窗口句柄?
  • ActiveX控件如何传递自定义struct
  • 自定义activeX控件的调用问题,请大虾指点~
  • activeX控件内部能不能直接连接sqlserver,如何连?
  • activex控件下载的问题
  • 有人知道微软的Activex控件的许可证什么原理,如果使用?
  • 怎么样看ActiveX控件用到的dll库的版本呀
  • 第一次做ActiveX控件,遇到几个问题,大家帮忙解答

相关文章

  • 2017-06-05 奇怪的问题,请教高人!!!!多谢!!!
  • 2017-06-04 这样的COM组件如何实现?
  • 2017-06-04 在对话框中怎么样才能显示powerpoint呢?
  • 2017-06-04 学习com/com+的方法?
  • 2017-06-05 线程,MUTEX和DLL之间居然产生了问题!
  • 2017-06-04 HMODULE的问题!
  • 2017-06-05 如何在Activex窗口中嵌入word?
  • 2017-06-04 为什么Queryinterface返回的IUnknown指针总是相同的
  • 2017-06-05 怎样在dll中获得它本身的所在路径?
  • 2017-06-05 请教srand和rand问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 在DLL中为什么不响应PreTranslateMessage
    • 如何监视"资源管理器"进程的启动?
    • 急!!帮忙!!对话框多线程第二个问题,在debug版本和Release版本下编译出的不一样,我就这些分了,等有分了一定在开贴谢谢大家
    • 多线程数据库操作错误!提示为:不能更新;当前正在被机器'ZHANGTAO'上的用户'admin'锁定。
    • 求教一个C++中虚数问题c++高手请进
    • 请大侠赐教,ATL如何调用MFC做的ActiveX控件的事件接口
    • 关于查询接口的问题
    • 多线程easy问题
    • 有没有人知道如何用代码设置DCOM的身份验证级别?
    • 接口类可以直接声明为变量吗?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有