(2002-12-18 12:33:55) 不是编程浪子
魔王绑架了公主
魔王:"你尽管叫破喉咙吧,没有人会来救你的."
公主:"破喉咙!破喉咙" 没有人:"公主,我来救你了"
魔王:"说曹懆,曹懆就到" 曹懆:"魔王,你叫我干嘛"
魔王:"#&!见鬼了" 鬼:"shit.被发现了"
shit:"胡说!谁被发现了" 谁:"关我屁事"
魔王:Oh,我的上帝啊! 上帝:“谁叫我?”
谁:“没有人叫你啊”! 没有人:“是魔王叫你”!
魔王吐血身亡!(通过服务器中转)
魔王绑架了公主
魔王:"你尽管叫破喉咙吧,没有人会来救你的."
公主:"破喉咙!破喉咙" 没有人:"公主,我来救你了"
魔王:"说曹懆,曹懆就到" 曹懆:"魔王,你叫我干嘛"
魔王:"#&!见鬼了" 鬼:"shit.被发现了"
shit:"胡说!谁被发现了" 谁:"关我屁事"
魔王:Oh,我的上帝啊! 上帝:“谁叫我?”
谁:“没有人叫你啊”! 没有人:“是魔王叫你”!
魔王吐血身亡!(通过服务器中转)
Public Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_HOTKEY Then
If wParam = idHotKey Then
Dim lp As taLong, i2 As t2Int
lp.ll = lParam
LSet i2 = lp
If (i2.lWord = Modifiers) And i2.hword = uVirtKey Then
Call frmTest.Do_Hide
End If
End If
End If
'将之送往原来的Window Procedure
WndProc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
End Function'在Form_load事件中加入,变量请自己定义
'例如定义系统热键Ctrl+Q,
'Modifiers = 1, uVirtKey = vbKeyQ, idHotKey = 1
preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc)
ret = RegisterHotKey(hwnd, idHotKey, Modifiers, uVirtKey)
可以定义该热键的相应处理函数或过程
API函数定义和说明参见VS里的API View和Msdn
晕了………Dim lp As taLong, i2 As t2Int
lp.ll = lParamtalong,t2int是什么类型???lp.ll是什么东东哈???(怎么都没有见过哈?)如果我的热键为:F12
那么Modifiers参数应设置什么值哈???
ll As Long
End TypePrivate Type t2Int
lWord As Integer
hword As Integer
End Type
分别对应ALT,CTRL,SHIFT,Windows键,可以任意组合。uVirtKey=vbkeyF12
好像不组合功能键不可以的哦。
然后uVirtKey=vbkeyF12。可以设定F12为系统热键。
但是可能会因为F12已经被注册使用而调用RegisterHotKey失败(昨天我就是这种情况)。如果这样,你只能换F11等功能键了。