在Win2000下,如何用API实现将模拟“shift”按键“按住”与“释放”?

解决方案 »

  1.   

    按住:
    keybd_event(VK_SHIFT, 0, 0, 0);
    释放:
    keybd_event(VK_SHIFT, 0, 2, 0);
      

  2.   

    /*按住:
    keybd_event(VK_SHIFT, 0, 0, 0);
    释放:
    keybd_event(VK_SHIFT, 0, 2, 0);*/
    只是对当前的程序A有效,如何在A程序实现B程序的上述功能呢?如类似鼠标的功能呢?
      

  3.   

    sendmessage(handle,WM_KEYDOWN,chr(VK_SHIFT),0,0)
      

  4.   

    sendmessage(handle,WM_KEYDOWN,chr(VK_SHIFT),0,0)
    这位仁兄SendMessage好像只有是个参数?
      

  5.   

    假设B程序的窗口标题是‘B程序’,
    procedure TForm1.Button1Click(Sender: TObject);
    var h: HWND;
    begin
      h := FindWindow(nil, 'B程序');
      if h > 0 then
      begin
        // 把B程序切换到前台
        SetForegroundWindow(h);
        // 按住:
        keybd_event(VK_SHIFT, 0, 0, 0);
        // 释放:
        keybd_event(VK_SHIFT, 0, 2, 0);
      end;
    end;