如何注册热键呼出隐藏窗口 在线

weiyulin 2008-02-04 08:45:36
如何注册热键呼出隐藏窗口 窗口是Hide的 我需要按下Ctrl + Alt + Shift + A Show我的窗体


也可以是其它热键
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyinggu 2011-03-29
  • 打赏
  • 举报
回复
看看看看看
gitbyte 2008-04-16
  • 打赏
  • 举报
回复
呵呵。好。。
Hotus 2008-04-16
  • 打赏
  • 举报
回复
只有接分了
awperpvip 2008-02-05
  • 打赏
  • 举报
回复
都说完了..
vbasm_com 2008-02-05
  • 打赏
  • 举报
回复
http://www.m5home.com/blog2/blogview.asp?logID=202&cateID=2

我改的一个类,使用上相当方便.
aohan 2008-02-04
  • 打赏
  • 举报
回复


'新建一个窗体,增加一个按钮,名称都保持默认

Private Sub Command1_Click()
Me.Hide
End Sub

Private Sub Form_Load()
Dim ret As Long
preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)
idHotKey = 1
Modifiers = MOD_ALT + MOD_CONTROL + MOD_SHIFT
uVirtKey = vbKeyA
ret = RegisterHotKey(Me.hwnd, idHotKey, Modifiers, uVirtKey)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim ret As Long
ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)
Call UnregisterHotKey(Me.hwnd, uVirtKey)

End Sub

'新建一个模块

Option Explicit

Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function CallWindowProc Lib "User32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function RegisterHotKey Lib "User32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Declare Function UnregisterHotKey Lib "User32" (ByVal hwnd As Long, ByVal id As Long) As Long

Public Const WM_HOTKEY = &H312
Public Const MOD_ALT = &H1
Public Const MOD_CONTROL = &H2
Public Const MOD_SHIFT = &H4
Public Const GWL_WNDPROC = (-4)

Public preWinProc As Long
Public Modifiers As Long, uVirtKey As Long, idHotKey As Long

Private Type taLong
ll As Long
End Type

Private Type t2Int
lWord As Integer
hWord As Integer
End Type

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 '按下了指定的热键
Form1.Show
End If
End If
End If
Wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
End Function



chenhui530 2008-02-04
  • 打赏
  • 举报
回复
http://bbsmoon.com/page/20069/19816A588E.htm
chenhui530 2008-02-04
  • 打赏
  • 举报
回复
SendMessage 发送WM_SETHOTKEY消息

1,485

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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