.net c# winform模拟键盘输入内容

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

.net c# winform 如果想模拟键盘输入内容,非常简单,3个步骤搞定

1. 获取当前所在的进程.

        /// <summary>
        /// 获取当前正在运行的应用程序
        /// </summary>
        /// <param name="name">应用程序名称</param>
        /// <returns></returns>
        public Process ProcessGet(string name)
        {
            var processes = Process.GetProcessesByName(name);
            if (processes == null || processes.Length <= 0) return null;
            foreach (var thisproc in processes)
            {
                var strBuilder = new StringBuilder(256);
                Win32.GetWindowText(thisproc.MainWindowHandle, strBuilder, 256);
                var txt = strBuilder.ToString();
                if (string.IsNullOrEmpty(txt)) return thisproc;
                if ("BOSSLOGIN:" + name == txt) return thisproc;
                if (txt.IndexOf("BOSSLOGIN:") == 0) continue;
                return thisproc;
            }
            return null;
        }

2.将程序置于最前方,如果该程序光标已经在指定的地方,在直接忽略该步骤,如果不在,这需要模拟点击,将光标置于要输入内容的位置.

        public Point ProcessShow(Process pross)
        {
            Win32.RECT rect;
            Win32.GetWindowRect(pross.MainWindowHandle, out rect);
            Point _point = new Point(rect.Left, rect.Top);
            Win32.ShowWindow(pross.MainWindowHandle, Win32.WindowAction.Show);
            Win32.SetForegroundWindow(pross.MainWindowHandle);
            return _point;
        }

        public void ProcessClick(int x, int y, Point point)
        {
            x += point.X;
            y += point.Y;
            Win32.SetCursorPos(x, y);
            Win32.mouse_event((int)(Win32.MouseEventFlags.LeftDown | Win32.MouseEventFlags.Absolute), x, y, 0, 0);
            Thread.Sleep(50);
            Win32.mouse_event((int)(Win32.MouseEventFlags.LeftUp | Win32.MouseEventFlags.Absolute), x, y, 0, 0);
            Thread.Sleep(150);
        }

调用:

        private void zbtnclick_Click(object sender, EventArgs e)
        {
            SiteProcess item = new SiteProcess();
            string name = zproname.Text;
            var process = item.ProcessGet(name);
            if (process == null) { MessageBox.Show("程序未启动"); return; }
            Point point = item.ProcessShow(process);
            item.ProcessClick(item.FormatInt(zx.Text, 0), item.FormatInt(zy.Text, 0), point);

        }

3.这个时候,只要模拟输入内容即可.

        public void InputMsg(IntPtr handle, string strtext)
        {
            foreach(var s in strtext)
            {
                SendKeys.SendWait(s.ToString());
                Thread.Sleep(50);
            }
            Thread.Sleep(100);
        }

调用:

        private void zbtninput_Click(object sender, EventArgs e)
        {
            SiteProcess item = new SiteProcess();
            string name = zproname.Text;
            var process = item.ProcessGet(name);
            if (process == null) { MessageBox.Show("程序未启动"); return; }
            Point point = item.ProcessShow(process);
            item.ProcessClick(item.FormatInt(zx.Text, 0), item.FormatInt(zy.Text, 0), point);
            Thread.Sleep(2000);
            item.InputMsg(process.MainWindowHandle, ztxtcon.Text);
        }


 

附件:下载该文件资源,减少时间成本(增值服务)
.net c# winform模拟键盘输入内容
不商用,只限学习使用,使用后请删除
上传者拥有该资源完整版权,下载既表明已授权您可以进行报备商用,无报备或者使用后报备,视为侵权,报备后使用,为合法有效使用,报备方式,下载后,在下载列表,点击报备,填写使用场景即可
File Source
.rar
203.38 KB
文件部分展示图(单击放大)
.net c# winform模拟键盘输入内容.net c# winform模拟键盘输入内容.net c# winform模拟键盘输入内容.net c# winform模拟键盘输入内容.net c# winform模拟键盘输入内容
留言
该资源可下载
File Source
0
最新结算
股权转让协议意向书模板
类型: .docx 金额: CNY 2.23¥ 状态: 待结算 详细>
股权转让协议意向书模板
类型: .docx 金额: CNY 0.28¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 2.39¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 0.3¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章