用keybd_event(VK_RETURN,0,0,0),keybd_event(65,0,0,0)
可以模拟回车,a等等
可是我想模拟;,."" 这些符号时,总是不行
请问如果模拟出它们来?
或用其它什么方法可以实现?

解决方案 »

  1.   

    procedure SimulateKey( Keys : String );
    //Simulate some Keys typed
    //Copy Right ffjn@17:41 2003-9-8 
    var
      key: Char;
      V, H, L, i: Integer;
      Const Shift: array[0..2] of byte = (VK_SHIFT, VK_CONTROL, VK_MENU);
    begin
      for i:= 1 to Length(Keys) do begin
        Key:= Keys[i];
        V:= VkKeyScan(Key);
        if V > 255 then (*包含特殊键*)
        begin
          L:= v and 255;
          H:= v shr 9;
          keybd_event(Shift[H], 0, 0, 0);
          keybd_event(L, 0, 0, 0);
          keybd_event(L, 0, KEYEVENTF_KEYUP , 0 );
          keybd_event(Shift[H], 0, KEYEVENTF_KEYUP , 0 );
        end
        else begin
          keybd_event(V, 0, 0, 0);
          keybd_event(V, 0, KEYEVENTF_KEYUP, 0 );
        end;
      end;
    end;
      

  2.   

    也可以参考一下这边:SendKeyString、SendKeysToTitle、SendKeysToHandle、 
    http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20283305.html
      

  3.   

    sendmessage(handle,wm_keydown,0,ord(;;'));