H happydel Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-31 #1 怎样做一个像OICQ那样,无论操作焦点在那里,只要按CTRL+ALT+Z就可以弹出消息对话框呢? 最好能给源码
Z zjhgb Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-31 #3 必须调用WINDOWS API的具体的源码,我也没有的。抱歉
H happydel Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-31 #5 我知道应该是调用SetwindowsHookEx这个API函数,但是具体怎么用,我不怎么清楚。
L libin06 Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-01 #8 注册一个系统热键。 参见Delphi未经证实的葵花宝典->系统相关->键盘->应用程序热键的实现。
B blue girl Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-01 #9 感觉是用Hook来拦截系统的消息,当你按键是会将消息发送 给QQ。
风 风中流云 Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-01 #10 ; ;函数功能:该函数定义一个系统范围的热键。 ; ; 函数原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk) 参数: ; ; hWnd:接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。 ; ; id:定义热键的标识符。调用线程中的其他热键不能使用同样的标识符。应用功能程序必须定义一个0X0000-0xBFFF范围的值。一个共享的动态链接库(DLL)必须定义一个0xC000-0xFFFF范围的值伯GlobalAddAtom函数返回该范围)。为了避免与其他动态链接库定义的热键冲突,一个DLL必须使用GlobalAddAtom函数获得热键的标识符。 ; ; fsModifoers:定义为了产生WM_HOTKEY消息而必须与由nVirtKey参数定义的键一起按下的键。该参数可以是如下值的组合: ; ; MOD_ALT:按下的可以是任一Alt键。MOD_CONTROL:按下的可以是任一Ctrl键。 ; ; MOD_SHIFT:按下的可以是任一Shift键。 ; ; MOD_WIN:按下的可以是任一Windows按键。这些键可以用Microsoft Windows日志记录下来。 ; ; vk:定义热键的虚拟键码。 ; ; ; ; ;
; ;函数功能:该函数定义一个系统范围的热键。 ; ; 函数原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk) 参数: ; ; hWnd:接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。 ; ; id:定义热键的标识符。调用线程中的其他热键不能使用同样的标识符。应用功能程序必须定义一个0X0000-0xBFFF范围的值。一个共享的动态链接库(DLL)必须定义一个0xC000-0xFFFF范围的值伯GlobalAddAtom函数返回该范围)。为了避免与其他动态链接库定义的热键冲突,一个DLL必须使用GlobalAddAtom函数获得热键的标识符。 ; ; fsModifoers:定义为了产生WM_HOTKEY消息而必须与由nVirtKey参数定义的键一起按下的键。该参数可以是如下值的组合: ; ; MOD_ALT:按下的可以是任一Alt键。MOD_CONTROL:按下的可以是任一Ctrl键。 ; ; MOD_SHIFT:按下的可以是任一Shift键。 ; ; MOD_WIN:按下的可以是任一Windows按键。这些键可以用Microsoft Windows日志记录下来。 ; ; vk:定义热键的虚拟键码。 ; ; ; ; ;
Y yzhshi Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-01 #11 设置热键 ; HotkeyId:=GlobalAddAtom(Pchar('UserDefineHotKey'))-$C000; //减去$C000是为了保证取值范围的限制 ; RegisterHotkey(Handle,Hotkeyid,MOD_CONTROL or MOD_Alt, $41);//敏感键为ctrl+Alt+A 释放热键 ; UnRegisterhotkey(Handle,HotkeyId); ; DeleteAtom(HotKeyID);
设置热键 ; HotkeyId:=GlobalAddAtom(Pchar('UserDefineHotKey'))-$C000; //减去$C000是为了保证取值范围的限制 ; RegisterHotkey(Handle,Hotkeyid,MOD_CONTROL or MOD_Alt, $41);//敏感键为ctrl+Alt+A 释放热键 ; UnRegisterhotkey(Handle,HotkeyId); ; DeleteAtom(HotKeyID);