收录日期:2020/06/02 08:56:12 时间:2016/06/06 10:24:30 标签:API
就是VB6程序在后台运行,当用户在键盘上按了某键以后,这个程序能接收到。 该如何实现,有例子最好,谢谢
使用键盘钩子
低级键盘钩子
如果只是针对某个键,还可以通过热键实现
热键的例子
Private Const MOD_ALT = &H1
Private Const MOD_CONTROL = &H2
Private Const MOD_SHIFT = &H4
Private Const PM_REMOVE = &H1
Private Const WM_HOTKEY = &H312
Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Type Msg
    hWnd As Long
    Message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type
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
Private bCancel As Boolean
Private Sub ProcessMessages()
    Dim Message As Msg
    'loop until bCancel is set to True
    Do While Not bCancel
        'wait for a message
        WaitMessage
        'check if it's a HOTKEY-message
        If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
            'minimize the form
            WindowState = vbMinimized
        End If
        'let the operating system process other events
        DoEvents
    Loop
End Sub
Private Sub Form_Load()
    'KPD-Team 2000
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim ret As Long
    bCancel = False
    'register the Ctrl-F hotkey
    ret = RegisterHotKey(Me.hWnd, &HBFFF&, MOD_CONTROL, vbKeyF)
    'show some information
    Me.AutoRedraw = True
    Me.Print "Press CTRL-F to minimize this form"
    'show the form and
    Show
    'process the Hotkey messages
    ProcessMessages
End Sub
Private Sub Form_Unload(Cancel As Integer)
    bCancel = True
    'unregister hotkey
    Call UnregisterHotKey(Me.hWnd, &HBFFF&)
End Sub

如何得到本地计算机的域名或组名???急 关于数组的使用,高分!!!! 视图问题--- unicode代码转换问题 请教一个问题? 为什么我的服务器上的邮个服务器,有时,会把一些网站的邮件退回去, 填加快捷方式 我想买一台液晶显示器,以便使用VS.Net,是买17寸的好还是15寸的好? 多媒体课件系统平台 如何调入matlab程序 或 如何在网页嵌入matlab程序(100分哟) 请问网络克隆的软件是什么? 为什么我的服务器上的邮个服务器,有时,会把一些网站的邮件退回去 用jdbc访问oracle时blob的大小有限制吗? Oracle查询分析器再次升级!!! 最后60分了,请问怎么样让hta文件运行起来 一个存储过程调用问题 关于创建位图 TMD!就请一天假而已! 怎么得到ms sql server的某个本地实例(或服务)的所有数据库列表? 请问一般什么时候用类呢? 關于insert的問題.請高人指教.小弟先謝謝了. ( 特急:)(高分:)如何删除表中重复的数据 我从网上下载了一些*.jar文件,如何把它加到JBuilder中??? 求助,在oracle过程里实现发email功能,我一直找不到,高分相送 一个关于SQL的小问题! 编写打印的程序都涉及到哪些冬冬? 如何使用C语言实现图形的变换 为什么等于1 db2的高版本对存贮过程的大小有无限制,低版本中是不得超过64K 请问各位关于JBUILDER7跟TOMCAT4.1集成的事 用什么控件显示数据最好?