none
怎么用SendMessage向其他窗口发送按键????? RRS feed

  • 问题

  • 怎么用SendMessage向其他窗口发送按键?????
    小弟想做一个DNF的连发程序,不想下载人家的,想自己写一个
    比如向窗口发送 K 这个键,下面是我的代码
       
      //发送按键 
      [DllImport("user32.dll", EntryPoint = "SendMessage")]
      static extern bool SendMessage(IntPtr hWnd, Int32 msg, Int32 wParam, Int32 lParam);
      //查找窗口句柄
      [DllImport("USER32.DLL")]
      public static extern IntPtr FindWindow(string lpClassName,
      string lpWindowName);
      //设置进程窗口到最前 
      [DllImport("USER32.DLL")]
      public static extern bool SetForegroundWindow(IntPtr hWnd);
      //WM_KEYDOWN 按下一个键
      public static int WM_KEYDOWN = 0x0100;
      //释放一个键
      public static int WM_KEYUP = 0x0101;
      //K键的键盘值
      public const int VK_SPACE = 75;
      private void button1_Click(object sender, EventArgs e)
      {
      IntPtr dnf = FindWindow(null, "地下城与勇士");
      //如果找到窗口句柄
      if (dnf != IntPtr.Zero)
      {
      //设置游戏窗口到最前 
      SetForegroundWindow(dnf);
      SendMessage(dnf, WM_KEYDOWN, VK_SPACE, 0);
      SendMessage(dnf, WM_KEYUP, VK_SPACE, 0); 
      }

      }

    代码哪里错了?我只知道第一个参数是发送目标窗口的句柄,那第二个,第三个,第四个参数都是怎么写的?
    麻烦大家指导一下

    2011年9月9日 15:47

答案

全部回复