如何监控键盘按下了那个键

蝈蝈俊 2000-03-15 10:59:00
各位大虾:
请教如何判断用户按下了那个键,(当前的窗体可能没有焦点.)
特急!急需帮助.
谢谢.
...全文
663 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝈蝈俊 2000-03-19
  • 打赏
  • 举报
回复
jll我把delphi的帖子都卡看了,没有发现关于keyspy的,您能指点一下?
蝈蝈俊 2000-03-18
  • 打赏
  • 举报
回复
我的e_mail改为ghj1976@netease.com
蝈蝈俊 2000-03-18
  • 打赏
  • 举报
回复
没有人再看这个问题?我的问题已用windows的api函数RegisterHotKey解决了,但我想看一看其它的方法,特别是jll提到的用keyspy,我对keyspy不了解,有没有大虾帮忙解释一下关于keyspy的问题.我好结束这个问题,大家都可以分些分,我也可以安心的去干其它事情.

蝈蝈俊 2000-03-17
  • 打赏
  • 举报
回复
非常感谢各位的关怀!
前面jll提到的KeySpy又是如何?
jll 2000-03-16
  • 打赏
  • 举报
回复
刚看到CSDN里Delphi中的一个例子,不用Hook(用汇编),好象叫KeySpy,你可以找找看。
dengdeng 2000-03-16
  • 打赏
  • 举报
回复
用键盘HOOK可以实现.

interface
...

function KeyboardHookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;

implementation

hKeyboardHookProc: 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;
蝈蝈俊 2000-03-16
  • 打赏
  • 举报
回复
用windows的api函数 RegisterHotKey 它可以不带ctrl,alt,shift之类的键.(如 registerhotkey(handle,hotkeyid3,0,VK_SPACE);它的热键就是空格键.
谢谢在我的另一个贴子上帮我用windows的api函数 RegisterHotKey解决问题的shania和hubdog
另外我想问用(hook)如何解决这个问题?
蝈蝈俊 2000-03-16
  • 打赏
  • 举报
回复
你能不能描述清楚点,我一页一页的找眼睛都发呆了.那里有KeySpy的介绍.
谢谢.
wlq 2000-03-16
  • 打赏
  • 举报
回复
来了,接着!
olo 2000-03-15
  • 打赏
  • 举报
回复
键盘Hook
蝈蝈俊 2000-03-15
  • 打赏
  • 举报
回复
  我是想在任何情况下,用户按下个键时,干一些事情.(比如:当前我在用WORD时我按下了(A键),然后,一段音乐被放映.用(hook)我对它不熟悉.我目前使用的是windows的api函数 RegisterHotKey
但它好象必须带一个ctrl,alt,shift之类的键.(具体可以看我的另一个帖子 关于registerhotkey函数的问题 )
我的E_MAIL是ghj1976@188.net
垃圾的不要发到我的信箱.
RobertLubj 2000-03-15
  • 打赏
  • 举报
回复
监控onkeydown事件
wlq 2000-03-15
  • 打赏
  • 举报
回复
》》如何监控键盘按下了那个键
不知你想做什么,如果想用钩子的话应该有许多例子,
或者留下地址我发你一个
5201314 2000-03-15
  • 打赏
  • 举报
回复
在form的onkeypress事件中有var Key: Char,代表按下了那个键!

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧