游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2721|回复: 0

关于SendKeys与Mouse_Action的问题

[复制链接]

3

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2008-1-29 08:59:00 | 显示全部楼层 |阅读模式
分别调用C#提供的sendKeys.send 或API函数中的Mouse_Action都很正常.
先调用Mouse_Action再调用sendKeys.send ,也正常.
但是先调用Mouse_Action接着调用sendKeys.send ,再调用Mouse_Action就出现sendKeys.send及后面的没相应,鼠标还锁死不能动的假象,按下CTRL+ALT+DEL才能动.
哪位高手知道是怎么回事么?
部分代码如下:
public static void Mouse_Action(int co, int wi, int he, uint info, int X, int Y)
        {
             if(wi!=0&&he!=0)   
            mouse_event(info, X * 65536 / wi, Y * 65536 / he, 0, 0);
        }

       Get_Positioninfo.Get_Green(ref color, ref width, ref height);             // 获得系统颜色位深及长宽   

       Get_Positioninfo.GetPosition(ref x, ref y, ref MSN, ref wucha);//获得当前窗体的起始坐标和..

              Key_Mouse.Mouse_Action(color, width, height, (uint)MouseEventFlag.AbsoluteMove, x + QQ_x2, y + QQ_y2);
              Thread.Sleep(50);  //因为操作的是别的程序窗口,太快会丢失,所以加了些这个
              Key_Mouse.Mouse_Action(color, width, height, (uint)MouseEventFlag.LeftDown, x + QQ_x2, y + QQ_y2);
             Thread.Sleep(50);
            Key_Mouse.Mouse_Action(color, width, height, (uint)MouseEventFlag.AbsoluteMove, x + QQ_x2 + 100, y + QQ_y2);
              Thread.Sleep(50);
             Key_Mouse.Mouse_Action(color, width, height, (uint)MouseEventFlag.LeftUp, x + QQ_x2 , y + QQ_y2);    //在某位置按一下鼠标左键
              string Contents = "请根据下面图片的提示,输入相应的阿拉伯数字1-4";
               SendKeys.Send(Contents);//输入上面字符串.有下面的鼠标操作就没相应了.
               System.Windows .Forms .SendKeys.Send(Contents);
              Thread.Sleep(5000);
             Key_Mouse.Mouse_Action(color, width, height, (uint)MouseEventFlag.AbsoluteMove, x + QQ_x2, y + QQ_y2);
              Thread.Sleep(50);
               Key_Mouse.Mouse_Action(color, width, height, (uint)MouseEventFlag.LeftDown, x + QQ_x2, y + QQ_y2);
               Thread.Sleep(50);
              Key_Mouse.Mouse_Action(color, width, height, (uint)MouseEventFlag.AbsoluteMove, x + QQ_x2 + 100, y + QQ_y2);
               Thread.Sleep(50);
              Key_Mouse.Mouse_Action(color, width, height, (uint)MouseEventFlag.LeftUp, x + QQ_x2 + 100, y + QQ_y2);
              Thread.Sleep(50); //选择一部本文字


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 01:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表