📄 16971.html
字号:
<html>
<head>
<title>不太容易</title>
</head>
<body bgcolor="#FFFFFF" vlink="#808080">
<center>
<h1>不太容易</h1>
</center>
<hr size=7 width=75%>
<hr size=7 width=75%><p>
Posted by <a href="mailto:cww5@mail.ncku.edu.tw">cww</a> on August 10, 1999 at 09:11:03:<p>
In Reply to: <a href="16957.html">How to distinguish the , and on both side of the keyboard?</a> posted by Lisa Lin on August 10, 1999 at 07:49:58:<p>
要拦截wm_keydown/wm_keyup的讯息,<br> 其lParam 第16-23 个bits便是scan code<br>但是要如何拦截呢?<br>1.使用subclass 但是这只能使某个Window(如Form)拦截<br>该讯息,如果keyboard focus在Form上的textbox等<br>sub control便栏不到,除非一并拦截该sub control的<br>window procedure<br>2.使用keyboard hook,这可以拦截该Process所有<br>keyboard的动作,相同的其Hook Procedure传入的<br>lParam便有Scan Code(同上所述在16-23 bits),但<br>不同的Process便拦不到,除非使用remote hook,但是<br>这不是单单VB做得到,需用c/delphi等做出一般用的<br>.Dll再给VB呼叫<br>3.使用JournalRecordHook,其Hook Procedure传入的<br>message如果是keyboard message则另外的paramH参数<br>便是scan code,这可以hook所有的Process,但只有一个<br>Process可用JournalRecordHook,而且系统资源很吃重<br>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 16971-->
</ul><!--end: 16971-->
<br><hr size=7 width=75%><p>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -