Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。    函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);    参数:    hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。    Msg:指定被发送的消息。    wParam:指定附加的消息指定信息。    IParam:指定附加的消息指定信息。    返回值:返回值指定消息处理的结果,依赖于所发送的消息。    备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。    如果指定的窗口是由调用线程创建的,则窗口程序立即作为子程序调用。如果指定的窗口是由不同线程创建的,则系统切换到该线程并调用恰当的窗口程序。线程间的消息只有在线程执行消息检索代码时才被处理。发送线程被阻塞直到接收线程处理完消息为止。    Windows CE:Windows CE不支持Windows桌面平台支持的所有消息。使用SendMesssge之前,要检查发送的消息是否被支持。    速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。

解决方案 »

  1.   

    //hotkey
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Private Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Const WM_SETHOTKEY = &H32
    Const WM_SHOWWINDOW = &H18
    Const HK_SHIFTA = &H141 'Shift + A
    Const HK_SHIFTB = &H142 'Shift + B
    Const HK_CONTROLA = &H241 'Control + A
    Const HK_ALTZ = &H45A
    'The value of the key-combination has to
    'declared in lowbyte/highbyte-format
    'That means as a hex-number: the last two
    'characters specify the lowbyte (e.g.: 41 = a),
    'the first the highbyte (e.g.: 01 = 1 = Shift)
    Private Sub Form_Load()
        Me.WindowState = vbMinimized
        'Let windows know what hotkey you want for
        'your app, setting of lParam has no effect
        erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_ALTZ, 0)
        'Check if succesfull
        If erg& <> 1 Then
        MsgBox "You need another hotkey", vbOKOnly, "Error"
        End If
        'Tell windows what it should do, when the hotkey
        'is pressed -> show the window!
        'The setting of wParam and lParam has no effect
        erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0)
    End Sub
      

  2.   

    to  water_j(jxp) 什么意思,看不明。sendmessage函数不是发消息的函数吗?
    snedmessage发了消息,哪里接收键盘的处理?
    DefWindowProcA又是什么?可不可以再说清楚一点。再说,你给的代码我试过,Shift + A
                            shift + B
                            Control + A
    一点反应都没有。
    可能是我太菜,还望指点。