2209.html

来自「以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题」· HTML 代码 · 共 21 行

HTML
21
字号
<html>
  <head>
    <title>旧事重提:keyboard Hook</title>
  </head>
  <BODY BACKGROUND="" BGCOLOR="white" TEXT="black" LINK="red" VLINK="#808080" ALINK="">
    <center>
      <h1>旧事重提:keyboard Hook</h1>
    </center>

<HR><p>
Posted by <a href="mailto:cww5@mail.ncku.edu.tw">cww</a> on March 09, 1998 at 19:07:54:<p>
吴站长您好:<br>一两个月前曾提出keyboard hook的问题,当时于<br>Declare Function SetWindowsHookEx Lib "user32" Alias _<br>"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _<br>ByVal hmod As Long, ByVal dwThreadId As Long) As Long<br>中第三个参数中打转,如果它是system hook的话,第三个参数应是<br>.dll的hInstance。而当时您似乎是说于.dll程式中不要使用<br>App.hInstance传入,即<p>preHook = SetWindowsHookEx(WH_KEYBOARD, address of myHookFunc, _<br>   app.hInstance, 0)<p>会有问题,不过,一般.dll中会有<br> dllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)<br>的主程式,第一个参数便是.dll的 hInstance,而我猜在vb的.dll Server<br>中,app.hInstance指的应是.dll的hInstance,我也试过列出一般程式中,<br>使用.dll server,而后印出二者的app.hInstance结果发现,一般ap的app.hinstance与.dll中的app.hinstance值不相同,所以加强了我这个看法。<br>而vb中只有使用ActiveX.Dll Server才能造出.dll,所以我使用<br> SetWindowsHookEx(WH_KEYBOARD, address of myHookFunc, _<br>   app.hInstance, 0)<br>的呼叫似乎没有错,而它在local hook不会当,而于system hook时会当的原<br>因,初步排除应不是App.hInstance的问题,可能是ActiveX.dll Server与<br>一般.dll特性的不同,只是我不太知道它们之间最大的不同在何处,您觉得<br>可能往哪个方向去TESTING比较可能找出答案?谢谢
<br>
<p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 2209-->
</ul><!--end: 2209-->
<br><HR><p>

</body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?