rt
解决方案 »
- sendmessage 的第二个参数有问题!!!
- 不能为DataGrid1控件的单元个付值?????
- 没有专门的路由器,没有架设VPN,总部和分部没有固定IP,也没有固定域名,这种情况下怎么传输数据
- 急急急,请高手解答,关于打印
- 请问如何用电脑控制小灵通手机拨号?
- 求一段程序!高手帮忙~~~~~~~~!!!!!!!!!!!!!!!!!!!!!!!!!
- 如何保存图片于数据库中?
- 请问ASP中的参数如何传递到VB程序中!在线等待
- TreeView问题,回复的都给分!肯定给。急!昨天已经发过了,但没人回复。
- vb通过ODBC调用Sybase数据库时如何设置数据库驱动程序(重分奖励)?
- 将程序注册为系统服务后产生的问题!
- 新手求教关于模块程序调用的问题
Private Sub Form_Load()
Me.Show
Me.Hide
Set hk = New clsRegHotKey
hk.RegeditHotKeys Me.hwnd, CtrlKey, vbKeyS
End SubPrivate Sub Form_Unload(Cancel As Integer)
hk.UnRegeditHotKeys
Set hk = Nothing
End SubPrivate Sub hk_HotKeysDown()
Me.Show
End Sub
'类名 clsRegHotKey
Private Type POINTAPI
x As Long
y As Long
End TypePrivate Type Msg
hwnd As Long
Message As Long
wParam As Long
lParam As Long
time As Long
pt As POINTAPI
End TypePrivate Const PM_REMOVE = &H1
Private Const WM_HOTKEY = &H312
Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Private Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long
Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
Private Declare Function WaitMessage Lib "user32" () As Long
'************************************************************
Enum ShiftKeys
AltKey = &H1
CtrlKey = &H2
ShiftKey = &H4
End Enum
Private bCancel As Boolean
Private clshwnd
Public Event HotKeysDown()
'注册热键,等候按键消息
Sub RegeditHotKeys(ByVal hwnd As Long, ByVal ShiftKey As ShiftKeys, ByVal ComKey As KeyCodeConstants)
RegisterHotKey hwnd, &HBFFF&, ShiftKey, ComKey '注册热键
clshwnd = hwnd
bCancel = False
Dim Message As Msg
Do While Not bCancel
WaitMessage '等候按键消息
'判断消息
If PeekMessage(Message, hwnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
RaiseEvent HotKeysDown '引发事件
End If
DoEvents
Loop
End Sub
'取消热键注册
Sub UnRegeditHotKeys()
bCancel = True
UnregisterHotKey clshwnd, &HBFFF&
End Sub