作者ChrisTorng (ChrisTorng)
看板Liu
标题Re: [伪虾] 伪.虾米 Ver 2.9.7 (不稳定测试版)
时间Wed Jun 29 13:51:02 2005
: 而是在於我不光是要拦截到某个键被按下
: 还要依照当时的状态判断,是要将该按键讯息放回原本的视窗还是要吃掉它 ^^"
: (因为有这部份的要求
: 所以我改掉 PostMessage 和本来全部都会 CallNextHookEx 的部份)
: 就是这部份会发生很多问题
我就想说我应该也有这个判断啊…刚刚才发现我贴错程式了!
我是全部使用 SendMessage,全部由 VB 判断是否要吃掉。
曾经试过要在 C 里面判断,不过那时做不出来…
由 VB 这里判断,整个逻辑还单纯,我用都好好的,并不会有不稳的情况。
效率上也感觉不出任何影响,人打字的速度再快也比不过电脑处理的速度。
#define MYWM_KEYB_MESSAGE WM_USER + 2
#define EAT_MESSAGE 1
static LRESULT WINAPI KeyboardHook_HookProc(int nCode, WPARAM wParam,
LPARAM lParam)
{
LRESULT lResult;
lResult = 0;
if (nCode == HC_ACTION)
lResult = SendMessage(g_hwndPost, MYWM_KEYB_MESSAGE,
wParam, lParam);
if (lResult == 0 || nCode < 0) {
lResult = CallNextHookEx(g_hhook, nCode, wParam, lParam);
return lResult;
}
return EAT_MESSAGE;
}
Private Const MYWM_HOTKEY As Long = WM_USER + 2
Private Const EAT_MESSAGE As Long = 1
Private Const NOEAT_MESSAGE As Long = 0
Case MYWM_HOTKEY
If RunKeyFunction(wp, lp) Then
WndProc = EAT_MESSAGE
Else
WndProc = NOEAT_MESSAGE
End If
Exit Function
--
ChrisTorng
http://groups.msn.com/ChrisTorng
ChrisTorng 样式讯息记录 V2.1 正式推出
http://groups.msn.com/ChrisTorng/msn6messagelog.msnw
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.75.28.114