我模拟键盘和鼠标超作,现在可以移动,也可以输入简单的字母,但不知道怎么输入"12345",这个字符串是通过表单提交过去的,可能是其他的数字组合.using System;
using System.Runtime.InteropServices;
namespace bb
{
class bb
{
  [DllImport("user32.dll")]
  public static extern void mouse_event(int dwFlags,int dx,int dy ,int dwData ,int dwExtralnfo);
  public const int MOUSEEVENTF_LEFTDOWN = 0x2;
  public const int MOUSEEVENTF_LEFTUP = 0x4;
  public const int MOUSEEVENTF_MIDDLEDOWN = 0x20;
  public const int MOUSEEVENTF_MIDDLEUP = 0x40;
  public const int MOUSEEVENTF_MOVE = 0x1;
  public const int MOUSEEVENTF_ABSOLUTE = 0x8000;
  public const int MOUSEEVENTF_RIGHTDOWN = 0x8;
  public const int MOUSEEVENTF_RIGHTUP = 0x10; 
  [DllImport("user32.dll")]
  public static extern void keybd_event( byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo ); 
  public const uint KEYEVENTF_EXTENDEDKEY = 0x1;
  public const uint KEYEVENTF_KEYUP = 0x2;
  //public const int myint=1;
  public static void Main()
  {
mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE,800 * 65536 / 1024, 370 * 65536 / 768,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0, 0,0,0);   keybd_event(65,0,0,0);
keybd_event(65,0,KEYEVENTF_KEYUP,0);
//SendKeys.Send(string str);
//|
  }
}
}

解决方案 »

  1.   

    keybd_event(65,0,0,0);
    keybd_event(65,0,KEYEVENTF_KEYUP,0);
    这个是产生按键信息,模拟按下A吧,65为大写字母A,48为数字0
      

  2.   

    keybd_event(65,0,0,0);
    keybd_event(65,0,KEYEVENTF_KEYUP,0);
    这个只能输一个字符哦,怎么才能输入一串,
    不是定死的,如果定死输入ab 的话是方便了,只要写上
    keybd_event(65,0,0,0);
    keybd_event(65,0,KEYEVENTF_KEYUP,0);
    keybd_event(66,0,0,0);
    keybd_event(66,0,KEYEVENTF_KEYUP,0);
    就行了,我需要的不是这种效果哦
      

  3.   

    keybd_event( (int)('6'),0,0,0);
    keybd_event((int)('6'),0,KEYEVENTF_KEYUP,0);
      

  4.   

    char[] chrItems = yourString.ToCharArray();
      

  5.   

    还有能不能用 SendKeys.Send(string str) 我不知道怎么用
      

  6.   

    to SendKeys.Send(string str) 我不知道怎么用当然不能用SendKeys来发送一串字符,
    char[] chrItems = yourString.ToCharArray();
    for( int i = 0; i < chrItems.Length; i++ )
    {
       keybd_event( (int)( chrItems[i] ),0,0,0);
       keybd_event((int)( chrItems[i] ),0,KEYEVENTF_KEYUP,0);
    }
      

  7.   

    用SendKeys也是一个字符一个字符发送。
      

  8.   

    我C#是刚学的,看的不是很清楚,但知道你的意思例如我要输入:88545怎么写我写成下面这样好象不行string[] arr={"558"};
    char[] chrItems = arr.ToCharArray();
    for( int i = 0; i < chrItems.Length; i++ )
    {
       keybd_event( (int)( chrItems[i] ),0,0,0);
       keybd_event((int)( chrItems[i] ),0,KEYEVENTF_KEYUP,0);
    }
      

  9.   

    string[] arr={"558"};
    char[] chrItems = arr.ToCharArray();
    for( int i = 0; i < chrItems.Length; i++ )
    {
    keybd_event( (byte)( chrItems[i] ),0,0,0);
    keybd_event((byte)( chrItems[i] ),0,KEYEVENTF_KEYUP,0);
    }
      

  10.   

    出现一个错误提示,system.array并不包含对 tochararray的定义
      

  11.   

    sorry!string yourString="558";
    char[] chrItems = yourString.ToCharArray();
    for( int i = 0; i < chrItems.Length; i++ )
    {
    keybd_event( (byte)( chrItems[i] ),0,0,0);
    keybd_event((byte)( chrItems[i] ),0,KEYEVENTF_KEYUP,0);
    }