美文网首页开发资料
自动化测试(控制其他程序控件)

自动化测试(控制其他程序控件)

作者: 落地成佛 | 来源:发表于2018-07-11 11:02 被阅读24次
    public partial class Form1 : Form
    {
        public uint VK_RETURN = 0x0D;
        public int WM_SETTEXT = 0x000C;
        public int WM_KEYDOWN = 0x100;
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            var iResult = new List<IntPtr>();
            IntPtr hwnd = FindWindow(null, "DWS");

          //循环窗体下的所有控件
            EnumChildWindows(
            hwnd,
            (h, l) =>
            {
                IntPtr f1 = FindWindowEx(h, IntPtr.Zero, "WindowsForms10.EDIT.app.0.34f5582_r12_ad1", null);
                if (f1 == IntPtr.Zero)
                    return true;
                else
                {
                    iResult.Add(f1);
                    return true;
                }
            },
            0);
            var indexs = int.Parse( textBox1.Text);

             SendMessage(iResult.Skip(indexs).Take(1).First(), WM_SETTEXT, IntPtr.Zero, new StringBuilder("00050B80"));
              //回车键
             SendMessage(iResult.Skip(indexs).Take(1).First(), WM_KEYDOWN, VK_RETURN, 0);
            //设置文字
        }


        [DllImport("User32.dll", EntryPoint = "FindWindow")]
        public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll")]
        private static extern Int32 SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, StringBuilder lParam);
        [DllImport("user32.dll", EntryPoint = "SendMessage")]
        public static extern int SendMessage(IntPtr hwnd, int wMsg, uint wParam, uint lParam);
        [DllImport("user32.dll", EntryPoint = "FindWindowEx", CharSet = CharSet.Auto)]
        private extern static IntPtr FindWindowEx(IntPtr parent, IntPtr child, string classname, string captionName);

        public delegate bool CallBack(IntPtr hwnd, int lParam);
        [DllImport("user32.DLL")]
        public static extern int EnumChildWindows(IntPtr hWndParent, CallBack lpfn, int lParam);
    }

相关文章

  • 自动化测试(控制其他程序控件)

  • 自动化你的测试

    自动化 硬件自动化硬件自动化包括测试夹具,搬移的自动化 软件自动化测试程序的自动化现有测试程序的连接,将已有的需要...

  • App Inspector 安装笔记及IOS端使用简介

    做过APP端自动化测试都知道,我们需要一个能够获得手机端控件信息的程序,这样我们才能编写自动化用例。今天我就和大家...

  • 自动化测试优缺点

    一,什么是自动化测试: 首先自动化测试技术,是以程序测试程序,以代码代替思维,以脚本的运行代替手工测试。把以人为驱...

  • web自动化测试

    自动化测试:让程序代替人为去验证程序功能的过程 为什么要进行自动化测试?1. 解决-回归测试2. 解决-压力测试3...

  • 2018-10-17 自动化测试基础

    (1)自动化测试简介 传统自动化测试: 基于产品UI层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行得一种...

  • Selenium

    一、自动化测试简介 1、传统自动化测试:基于产品UI层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行得一种...

  • Docker与自动化测试及其测试实践

    Docker 与自动化测试 对于重复枯燥的手动测试任务,可以考虑将其进行自动化改造。自动化的成本在于自动化程序的编...

  • Docker与自动化测试及其测试实践

    Docker 与自动化测试 对于重复枯燥的手动测试任务,可以考虑将其进行自动化改造。自动化的成本在于自动化程序的编...

  • “自动化测试解放双手”,测试自动化好处大盘点!

    维基百科对测试自动化(Test Automation, 简称TA)的定义是:测试自动化就是用特定的软件去控制测试步...

网友评论

    本文标题:自动化测试(控制其他程序控件)

    本文链接:https://www.haomeiwen.com/subject/hsthpftx.html