我写的mousehook为什么只在自己程序理有效?(300分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
to cakk:<br>&nbsp; 也不行,这可是血的教训
 
关键在于pmousehookstruct被释放了,而跟sendmessage或postmessage无关啊<br>pmousehookstruct传过去根本就不对。象eyes说的传h应该没问题。你试试吧
 
hwnd的数值是全局有效的,<br>但是放hwnd(receive)这个变量的的地方不是全局的<br>就是说,你虽然在你原来的进程设置了receive的值,但是去了另外一个进程这个地方<br>放的就不是你要的东西了<br>
 
Pipi.说得对!Win32的DLL的数据对不同的进程豆油不同的拷贝!<br>&nbsp;<br>&nbsp;<br><br>
 
看来还是前卫兄和我理解的透彻,嘿嘿<br>
 
&gt;&gt;关键在于pmousehookstruct被释放了,而跟sendmessage或postmessage无关啊<br>如果我用sendmessage,那么一定会等到我的form处理了消息才返回,在没有返回<br>的情况下,pmousehookstruct怎么会被释放呢? 因为sendmessage还没返回呢.<br><br>Pipi: 还是不明白,我通过sendmessage传递一个integer不行吗? 我并没有<br>&nbsp; &nbsp; &nbsp; 把它当作一个指针来用呀!
 
》Win32.hlp<br>whenever an application calls the GetMessage or PeekMessage function and there is a mouse message to be processed. <br><br>DLL被调用是在每个进程调用GetMessage PeekMessage,此时系统将DLL隐射到调用<br>GetMessage PeekMessage的进程空间,
 
补充,我试验过,用h来代替也不行的.
 
你别搞错了,我没有说post不行,也没说pmousehookstruct.hwnd不行<br>是说 receiver:integer 要放在共享的内存里面<br><br>另外pmousehookstruct.hwnd当然行了,post send都可以<br><br>要是光pmousehookstruct指针就是post send都不可以<br>
 
cAkk:<br>&nbsp; 你的程序不是pmousehookstruct的问题,是receiver问题!
 
你别搞错了,我没有说post不行,也没说pmousehookstruct.hwnd不行<br>是别人说不行的<br><br>我是说 receiver:integer 要放在共享的内存里面<br><br>另外pmousehookstruct.hwnd当然行了,post send都可以<br><br>要是光pmousehookstruct指针就是post send都不可以<br>
 
Pipi.我两咋回答一样呢?好样的.兄弟!
 
现在似乎明白了. 多谢大家!
 
天啊!我也100!
 
天啊!我才100! &nbsp;{B-(<br>
 
后退
顶部