![]() |
1
2
我假设您正在讨论在另一个应用程序中挂接一个窗口。这是一个非常重要的问题,wparam和lparam参数可能包含指针,而不是简单的值。但是,这些指针只在进程的虚拟内存空间中有效,而这个虚拟内存空间是您挂起的窗口。忽略这一点将使您获得一个访问冲突异常。 必须p/invoke readprocessmemory()才能读取指向结构。这需要为每个单独的消息做,您不能指望通用实现。当你钩住一个像listview或treeview这样的非普通窗口时,它会变得非常毛毛。 |
![]() |
2
1
大多数这样做的程序都使用DLL注入来处理来自拥有窗口的进程内部的事件。当然,不能将托管代码注入到另一个进程中,只能注入非常小心的本机代码,以免弄乱应用程序状态。 你想完成什么?挂接其他应用程序的“窗口”应该是最后的方法。 |