龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

vb实现老板键功能[图](2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
bas_Main.bas Option Explicit Declare Function FindWindow Lib "user32" Alias "FindWindowA" () Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowNa

  bas_Main.bas

Option Explicit
Declare Function FindWindow Lib "user32" Alias "FindWindowA" () Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" () Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Declare Function RegisterHotKey Lib "user32" () 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 SetWindowPos Lib "user32" () Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" () Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetForegroundWindow Lib "user32" () Declare Function GetForegroundWindow Lib "user32" () As Long
Declare Function ShowWindow Lib "user32" () Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" () 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 Sub keybd_event Lib "user32" () Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" () Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public hw1 As Long
Public CloseQuickKey As Boolean '是否可以退出
Public AutoActivate As Boolean '是否为鼠标激活
Public WindowStatus As Boolean '窗体状态(隐藏或显示)
Public Const WM_HOTKEY = &H312
Public Const WM_SYSCOMMAND = &H112
Public Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move
Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Const MOUSEEVENTF_RIGHTDOWN = &H8
Public Const MOUSEEVENTF_RIGHTUP = &H10
Const GWL_WNDPROC = () Const GWL_WNDPROC = (-4)
HotKeys() HotKeys(100, 3) As String '热键名称和运行的程序
HotKeyValue() HotKeyValue(100, 2) As Integer '热键名所对应的值
Public Username As String * 30
Public HideOrShow As Boolean '隐藏当前窗口
Public HideWindowHnd As Long '被隐藏窗口的ID
Public ActiveHwnd As Long '活动窗口的ID
GetWindowLong Lib "user32" Alias "GetWindowLongA" () GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
UnregisterHotKey Lib "user32" () UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long
Public Const MOD_ALT = &H1
Public Const MOD_CONTROL = &H2
Public Const MOD_SHIFT = &H4
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
Function Wndproc() 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
                If HideWindowHnd = 0& Then
                    HideWindowHnd = GetForegroundWindow
                    ShowWindow HideWindowHnd, 0
                Else
                    ShowWindow HideWindowHnd, 5
                    HideWindowHnd = 0&
                End If
            End If
    End If
End If
Wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
End Function

精彩图集

赞助商链接