请教高手abc!

sunming 2000-08-10 02:19:00
你好,我想知道能否通过API函数得到其它程序正发生的键盘击键的值?我只能得到当前程序的击键,当激活其他程序(如:在记事本中输入时,就不能捕捉KEY了,请问为什么,能否改进后捕捉到其他程序正进行的击键呢?
...全文
212 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shines77 2000-08-11
  • 打赏
  • 举报
回复
关注
nieyongxin 2000-08-11
  • 打赏
  • 举报
回复
你可以用GetCursorPos()and WindowFromPoint()获取鼠标所指处窗口的handle,然后给向上找此handle属于哪个Application,再用SetWindowsHook()函数给此Application加钩子,其详细说明参见MSDN,我就不多说了,但要注意:钩子函数本身要放在DLL中,否则会钩不住。在钩住一个应用程序后,系统向它发的消息或事件都会先送到你的钩子函数,然后再由你决定是原样
传给该程序或是作一些处理。
Wingsun 2000-08-11
  • 打赏
  • 举报
回复
要获得其他程序的消息有两种方法。
一是使用Hook函数,这样可以获得系统级的消息处理。
二是接管该程序的消息处理,也就是重写一个消息处理函数代替原来的程序的消息处理函数。这样只能获得指定程序的消息处理。
Janven 2000-08-11
  • 打赏
  • 举报
回复
我最近做了一个远程控制客户端鼠标的程序,用的是VXD。
你的这种情况用钩子就行了,很多网上有相关资料,有些还有VC编好了的DLL给你用的。
Davy 2000-08-10
  • 打赏
  • 举报
回复
使用AttachThreadInput API函数
Public Declare Function AttachThreadInput Lib "user32" Alias "AttachThreadInput" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
idAttach - 欲连接线程的标识符
idAttachTo - 其他线程的标识符,应设为当前具有输入的线程
fAttach - true连接,false撤销连接
xubin_sh 2000-08-10
  • 打赏
  • 举报
回复
hook
lczddd 2000-08-10
  • 打赏
  • 举报
回复
能么?也许可能,能的。一定能.

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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