调用键盘和鼠标的范例

procedure TUnionExpress.ReadUnionSet(sSavePath  , sReadSetupPath  :string);
  var
    x :TRect;
    p :TPoint;
    UnionEdit :HWND;
  begin
    GetWindowRect(SelfUser.UnionToolHw, x);         //获取当前窗体的位置

    // 合区后的数据保存路径
    p.X := x.Left + 74;
    p.Y := x.Top + 396;
    UnionEdit := WindowFromPoint(p);
    if UnionEdit <> null then begin
      SendMessage(UnionEdit, WM_SETTEXT , 0 ,Integer(PChar(sSavePath)));
    end;

     // 配置保存路径
    p.X := x.Left + 394;
    p.Y := x.Top + 354;
    UnionEdit := WindowFromPoint(p);
    if UnionEdit <> null then begin
      SendMessage(UnionEdit, WM_SETTEXT , 0 ,Integer(PChar(sReadSetupPath)));
    end;

    // 执行清理人物按钮.
    if not CheckBox1.Checked then begin
      SetCursorPos(x.Left - 27 , x.Top + 268);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;

    // 清理人物的天数
    p.X := x.Left + 130;
    p.Y := x.Top + 284;
    UnionEdit := WindowFromPoint(p);
    if UnionEdit <> null then begin
      SendMessage(UnionEdit, WM_SETTEXT , 0 ,Integer(PChar(RzSpinEdit1.Text)));
    end;

    // 清理人物的等级
    p.X := x.Left + 226;
    p.Y := x.Top + 284;
    UnionEdit := WindowFromPoint(p);
    if UnionEdit <> null then begin
      SendMessage(UnionEdit, WM_SETTEXT , 0 ,Integer(PChar(RzSpinEdit2.Text)));
    end;

    // 执行清理ID按钮.
    if CheckBox2.Checked then begin
      SetCursorPos(x.Left - 18 , x.Top + 310);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;

    // 清理ID的天数
    p.X := x.Left + 130;
    p.Y := x.Top + 308;
    UnionEdit := WindowFromPoint(p);
    if UnionEdit <> null then begin
      SendMessage(UnionEdit, WM_SETTEXT , 0 ,Integer(PChar(RzSpinEdit3.Text)));
    end;

    if not CheckBox3.Checked then begin    // 清理无角色帐号
      SetCursorPos(x.Left + 18 , x.Top + 330);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;

    if not CheckBox4.Checked then begin    // 清理已删除人物
      SetCursorPos(x.Left + 18 , x.Top + 350);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;

    if not CheckBox5.Checked then begin    // 删除复制物品
      SetCursorPos(x.Left + 306 , x.Top + 284);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;
   
    if not CheckBox6.Checked then begin    // 重新排列物品ID
      SetCursorPos(x.Left + 306 , x.Top + 300);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;

    if CheckBox7.Checked then begin    // 英雄版
      SetCursorPos(x.Left + 306 , x.Top + 317);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;

    if CheckBox8.Checked then begin    // 合并帐号点卡记录
      SetCursorPos(x.Left + 418 , x.Top + 284);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;

    // 执行合区按钮.
    SetCursorPos(x.Left + 215 , x.Top + 433);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
  end;

posted @ 2012-11-27 21:32  唯一的事  阅读(206)  评论(0编辑  收藏  举报