ActiveX中获取键盘输入

chys3584 2009-08-17 04:42:56
请教高手
我因为项目需要开发了一个ActiveX控件,嵌入到网页中。目的是通过Scoket和服务器通信。为了不影响界面的美观,控件是不可见的,但是我需要获取键盘的输入(直接取得,不需要网页传过来),这个怎么办啊?
控件是用VC++ MFC开发的。

请高手指点。谢谢!
...全文
238 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
chys3584 2009-08-21
  • 打赏
  • 举报
回复
就没个简单点的方法吗?HOOK的话,杀毒软件会不会怀疑是病毒啊?
yxder 2009-08-18
  • 打赏
  • 举报
回复
网页上有截获键盘的代码 一旦截获到键盘输入 就调用你控件的接口函数 就可以了啊

你Google一下就找到截获键盘消息的代码了 可能是JavaScript写的
chys3584 2009-08-18
  • 打赏
  • 举报
回复
自己UP一下。怎么没有将帖子提前的按钮了?
chys3584 2009-08-18
  • 打赏
  • 举报
回复
网页提示用户输入,然后控件开始记录键盘输入,直到用户输入回车。再此过程中网页不显示用户的输入。
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
你想做什么?要求详细点
chys3584 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yxder 的回复:]
通过网页获取键盘事件,再调用你控件里的接口函数是最简单的实现方法
[/Quote]

说详细点呗,我不想让键盘信息在网页显示。
yxder 2009-08-18
  • 打赏
  • 举报
回复
通过网页获取键盘事件,再调用你控件里的接口函数是最简单的实现方法
chys3584 2009-08-18
  • 打赏
  • 举报
回复
哦,那位高手还有简单点的方法啊?最好说明白一点。
chys3584 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 tr0j4n 的回复:]
你是想保护键盘不被记录是吧?
[/Quote]

差不多。不想在前端显示输入。控件直接获取。
zoulie 2009-08-18
  • 打赏
  • 举报
回复
保护键盘 可以考虑加软键盘然后在加密
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
你是想保护键盘不被记录是吧?
MoXiaoRab 2009-08-17
  • 打赏
  • 举报
回复
手上没现成的
chys3584 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tr0j4n 的回复:]
这玩意,可不是三言两语说得清的
[/Quote]
那就发个例子呗,呵呵。谢谢。
chys3584@163.com
MoXiaoRab 2009-08-17
  • 打赏
  • 举报
回复
这玩意,可不是三言两语说得清的
chys3584 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tr0j4n 的回复:]
这边有2个思路,都是基于内核的

一个是设置0x93中断号,设置IDT中的中断服务程序的地址
而是通过IOAPIC,修改它的重定位表,然后插IDT

你的ActiveX只需要DeviceIoControl就行了,网银很多都是这么干的
你可以参考我网盘中的incision.sys
[/Quote]

哥们儿,你真是个高手啊,不过我对驱动不熟。并且你的文件没下载下来。
能不能说明白一点呢?最好浅入浅出。呵呵。
MoXiaoRab 2009-08-17
  • 打赏
  • 举报
回复
这边有2个思路,都是基于内核的

一个是设置0x93中断号,设置IDT中的中断服务程序的地址
而是通过IOAPIC,修改它的重定位表,然后插IDT

你的ActiveX只需要DeviceIoControl就行了,网银很多都是这么干的
你可以参考我网盘中的incision.sys
MoXiaoRab 2009-08-17
  • 打赏
  • 举报
回复
可以。
用ActiveX向系统中通过驱动注册一个中断服务
chys3584 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jameshooo 的回复:]
不能,键盘消息是由容器转发过来的,前提是控件有界面并且已经UI激活了。如果控件是有窗口的,那么这个窗口必须是焦点窗口才能收到键盘消息。HOOK方式有困难,ACTIVEX控件的执行权限较低。
[/Quote]

不知道各位高手们有没有好的方法? 多谢指教。
雪影 2009-08-17
  • 打赏
  • 举报
回复
Windows中的应用程序是以窗体消息的形式来获取键盘输入,而且窗口必须聚焦才行,而聚焦就必须是可视的。
因此想通过隐藏的窗口获取键盘输入,必须通过钩子。

楼主可以多了解Hook方面的技术
jameshooo 2009-08-17
  • 打赏
  • 举报
回复
不能,键盘消息是由容器转发过来的,前提是控件有界面并且已经UI激活了。如果控件是有窗口的,那么这个窗口必须是焦点窗口才能收到键盘消息。HOOK方式有困难,ACTIVEX控件的执行权限较低。
加载更多回复(2)

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧