利用api函数
keybd_event(
    BYTE bVk, // virtual-key code
    BYTE bScan, // hardware scan code
    DWORD dwFlags, // flags specifying various function options
    DWORD dwExtraInfo  // additional data associated with keystroke
   );
在uesr32.dll里举例如:
keybd_event(11, 0, 0, 0);
keybd_event(77, 0, 0, 0);
keybd_event(77, 0, KEYEVENTF_KEYUP, 0);
keybd_event(11, 0, KEYEVENTF_KEYUP, 0);
模拟开始键+M键,实现所有窗体最小化

解决方案 »

  1.   

    不好意思
    window键+m键应该是:
    keybd_event 91, 0, 0, 0
    keybd_event 77, 0, 0, 0
    keybd_event 77, 0, KEYEVENTF_KEYUP, 0
    keybd_event 91, 0, KEYEVENTF_KEYUP, 0 
      

  2.   

    to rh
    我是要发送按键呀,Keybd_event这个API是没有hWnd的
      

  3.   

    不用api行吗?
    例:
    Private Sub Command1_Click()
        Text1.SetFocus 
        SendKeys "^Z" ‘发送Ctrl+z 
    End Sub
      

  4.   

    用postmessage分别发送几个消息,好像最少要5个,具体你用SPY++看看
      

  5.   

    to jifeng
    我用spy++看的有个消息我不知道怎么发
      

  6.   

    to jackyin
    不用API无法指定hWnd呀
    我是要向一个特定窗口发送消息,这个窗口并非激活状态
      

  7.   

    sendkeys这个函数已经被微软列为一个重大bug了
    在包括windows2000系列及其下一代的操作系统里面都不能用了(目前sp1)。
    你可以上msdn 查看article ID:Q276346这篇文章。
    他(微软)建议用posmessage 或者keybd_event 这两个api函数不过,posmessage 比较繁琐, keybd_event 也是一个有问题的函数(在2000年被更新过)
    所以你的程序 一定要在windows2000下测试通过 才可以用。
    你可以封装一个sendkeys_2 来解决这个问题!
      

  8.   

    请参考MSDN中WM_KEYDOWN,WM_KEYUP,WM_CHAR,以按键顺序发送这几个消息即可,顺序SPY++可看到,还有哪不懂呢?
      

  9.   

    to jifeng
    我在看SPY++的时候就是不明白WM_CHAR消息的参数含义