【API】VB全局熱鍵(可用於HOME鍵呼出窗體)


功能:按下HOME鍵彈出記事本,按下END彈出計算器。
以下內容放在模塊里面

Option Explicit
'=================================================================
'
作者:EnCaL
'
時間:2011.10.10
'
用途:該模塊用於注冊熱鍵(END,HOME)
'
www.encalyk.com
'
=================================================================
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 RHK_HOME_ID, RHK_END_ID As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public 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
Public Const GWL_WNDPROC = (-4)
Public preWinProc As Long

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
Select Case (wParam)
Case RHK_HOME_ID:
Shell "notepad", vbNormalFocus
Case RHK_END_ID:
Shell "calc"
End Select
End If
'與form_load中的ADDRESSOF WNDPROC對應
wndproc = CallWindowProc(preWinProc, hWnd, Msg, wParam, lParam)
End Function

以下內容放在窗體里

'=================================================================
'
作者:EnCaL
'
時間:2011.10.10
'
用途:改鍵程序
'
www.encalyk.com
'
=================================================================
Private Sub Form_Load()
preWinProc = GetWindowLong(Me.hWnd, GWL_WNDPROC) '獲得窗口過程的地址,或代表窗口過程的地址的句柄
Call SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf wndproc)
'注冊home鍵
RHK_HOME_ID = 181
RHKmodifier = 0
RHKvk = vbKeyHome
RegisterHotKey Me.hWnd, RHK_HOME_ID, RHKmodifier, RHKvk
'注冊end鍵
RHK_END_ID = 443
RHKvk = vbKeyEnd
RegisterHotKey Me.hWnd, RHK_END_ID, RHKmodifier, RHKvk
End Sub


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM