如何监控键盘按下了那个键 在form的onkeypress事件中有var Key: Char,代表按下了那个键! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是想在任何情况下,用户按下个键时,干一些事情.(比如:当前我在用WORD时我按下了(A键),然后,一段音乐被放映.用(hook)我对它不熟悉.我目前使用的是windows的api函数 RegisterHotKey但它好象必须带一个ctrl,alt,shift之类的键.(具体可以看我的另一个帖子 关于registerhotkey函数的问题 )我的E_MAIL是ghj1976@188.net垃圾的不要发到我的信箱. 用windows的api函数 RegisterHotKey 它可以不带ctrl,alt,shift之类的键.(如 registerhotkey(handle,hotkeyid3,0,VK_SPACE);它的热键就是空格键. 谢谢在我的另一个贴子上帮我用windows的api函数 RegisterHotKey解决问题的shania和hubdog 另外我想问用(hook)如何解决这个问题? 刚看到CSDN里Delphi中的一个例子,不用Hook(用汇编),好象叫KeySpy,你可以找找看。 你能不能描述清楚点,我一页一页的找眼睛都发呆了.那里有KeySpy的介绍.谢谢. 用键盘HOOK可以实现.interface...function KeyboardHookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;implementationhKeyboardHookProc: HHOOK;function KeyboardHookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;const _KeyPressMask = $80000000;begin Result := 0; if iCode < 0 Then begin Result := CallNextHookEx(hKeyboardHookProc, iCode, wParam, lParam); Exit; end; if ((lParam and _KeyPressMask) = 0) and (GetKeyState(VK_MENU) < 0) and (wParam = 115) then begin //判断输入的键值,调用相应的处理函数. Result := 1; //返回1,系统将不再处理. end;end;//在程序中加入以下代码,设置HOOK hKeyboardHookProc := SetWindowsHookEx(WH_KEYBOARD, KeyboardHookHandler, HInstance, 0);//在程序中加入以下代码释放HOOK. if hKeyboardHookProc <> 0 then begin UnhookWindowshookEx(hKeyboardHookProc); hKeyboardHookProc := 0; end; 非常感谢各位的关怀! 前面jll提到的KeySpy又是如何? 没有人再看这个问题?我的问题已用windows的api函数RegisterHotKey解决了,但我想看一看其它的方法,特别是jll提到的用keyspy,我对keyspy不了解,有没有大虾帮忙解释一下关于keyspy的问题.我好结束这个问题,大家都可以分些分,我也可以安心的去干其它事情. 我的e_mail改为[email protected] jll我把delphi的帖子都卡看了,没有发现关于keyspy的,您能指点一下? 用OpenDialog选中多个文件后如何获取这些文件名? html组件 关于DBGIRD的问题 用DELPHI如何调用SQL SERVER的触发器和储存过程? 请各位大虾帮帮忙.谢了! PageControl控件问题? 程序打包时出错(急) IntraWeb在通过ado与access连接时的问题! 如何实现在quickreport中将A4纸竖向打印改为横向打印。 请pchar类型数据怎么样和string转换 急!如何使用Compress或makecab把若干个文件压缩到软盘上(分盘), 如何用HOOK钩住系统的消息?例如按某个键发出的消息?
但它好象必须带一个ctrl,alt,shift之类的键.(具体可以看我的另一个帖子 关于registerhotkey函数的问题 )
我的E_MAIL是ghj1976@188.net
垃圾的不要发到我的信箱.
谢谢在我的另一个贴子上帮我用windows的api函数 RegisterHotKey解决问题的shania和hubdog
另外我想问用(hook)如何解决这个问题?
谢谢.
...function KeyboardHookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;implementationhKeyboardHookProc: HHOOK;function KeyboardHookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
const
_KeyPressMask = $80000000;
begin
Result := 0;
if iCode < 0 Then
begin
Result := CallNextHookEx(hKeyboardHookProc, iCode, wParam, lParam);
Exit;
end;
if ((lParam and _KeyPressMask) = 0) and (GetKeyState(VK_MENU) < 0) and (wParam = 115) then
begin
//判断输入的键值,调用相应的处理函数.
Result := 1; //返回1,系统将不再处理.
end;
end;//在程序中加入以下代码,设置HOOK hKeyboardHookProc := SetWindowsHookEx(WH_KEYBOARD, KeyboardHookHandler, HInstance, 0);//在程序中加入以下代码释放HOOK. if hKeyboardHookProc <> 0 then
begin
UnhookWindowshookEx(hKeyboardHookProc);
hKeyboardHookProc := 0;
end;
前面jll提到的KeySpy又是如何?