飞鱼宝宝 - 2006-2-26 21:39:00
注意,是调用API,比如说在程序非激活状态下按入一个指定的键,然后激活程序为当前活动的程序。
先谢谢各位了。
飞鱼宝宝 - 2006-2-28 18:23:00
郁闷哦,有没有哪位大虾帮我出出主意呀??
endurer - 2006-3-1 13:34:00
可以通过RegisterHotKey()为程序定义一个系统范围的热键。
该函数原形如下:
BOOL RegisterHotKey(HWND hWnd, // 接收热键响应的窗口句柄
int id, // 热键的标识
UINT fsModifiers, // 控制键标志
UINT vk // 虚拟键值
);
其中,热键标识id必须是一个范围在0xC000到0xFFFF之间的全局唯一的值。
也可以参考:
VB中利用ccrpHotKey控件设置热键
http://tech.163.com/05/0610/10/1LSMR0J500091589.html
清风阁☆四少 - 2006-3-5 13:28:00
版主C++学的不错啊~~~~~
endurer - 2006-3-6 22:36:00
楼主可以参考:
编程使用系统热键{演示RegisterHotKey()和UnregisterHotKey()}
http://forum.ikaka.com/topic.asp?board=55&artid=7854478
或
按下某组键(HotKey)便执行某程式
http://www.vbzx.net/ArticleView/vbzx_Article_View_545.asp
飞鱼宝宝 - 2006-3-8 0:25:00
在Form中加入
Private Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vkey As Long) As Integer
Private Function MyHotKey(vKeyCode) As Boolean
MyHotKey = GetAsyncKeyState(vKeyCode) < 0
End Function
然后在循环中或Timer的Timer事件中检测:
If myHotKey(vbkeyA) then .....
我觉得这个方法简单又好用,只要再加入一个API让热键按下后程序出现在最顶层就可以做一个呼出程序的热键了.
endurer - 2006-3-9 22:21:00
与RegisterHotKey()相比,GetAsyncKeyState()的优点在于可以监控鼠标按键,缺点是需要使用定时器,而且无法保证热键的惟一性。
© 2000 - 2026 Rising Corp. Ltd.