• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

操纵遨游工具栏的方法,解决spy++无法捕获控件的问题(2)

发布: 2009-4-23 09:50 | 作者: 不详 | 来源: 测试时代采编 | 查看: 324次 | 进入软件测试论坛讨论

领测软件测试网 利用微软内部工具 mitaspy可以发现msaa对象。这说明,mita比maui要强。mita也是微软以后的标准。

同时发现了FindWindowEx只能搜索子窗口,不能搜索孙子窗口,所以,需要提前注意窗口的嵌套层次。
这个问题完结了。我也不研究了。继续其他的学习。

更新后的代码


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Runtime.InteropServices;
using Accessibility;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int hWnd = FindWindowEx(0, 0, "Maxthon2_Frame", null);
            int sub = FindWindowEx(hWnd, 0, "XTPDockBar", null);
            int subhwnd = FindWindowEx(sub, 0, null, "标准工具栏");
            if (subhwnd!= null)
                Console.WriteLine("OK, Found the toolbar");
            msaa((IntPtr)subhwnd);

            Console.ReadKey();
        }

        [DllImport("oleacc", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
        public static extern int AccessibleChildren(IAccessible paccContainer, int iChildStart, int cChildren, [In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] object[] rgvarChildren, ref int pcObtained);

        [DllImport("oleacc.dll")]
        internal static extern int AccessibleObjectFromWindow(
                      IntPtr hwnd,
                      uint id,
                      ref Guid iid,
                      [In, Out, MarshalAs(UnmanagedType.IUnknown)] ref object ppvObject);

        internal enum OBJID : uint
        {
            WINDOW = 0x00000000,
            SYSMENU = 0xFFFFFFFF,
            TITLEBAR = 0xFFFFFFFE,
            MENU = 0xFFFFFFFD,
            CLIENT = 0xFFFFFFFC,
            VSCROLL = 0xFFFFFFFB,
            HSCROLL = 0xFFFFFFFA,
            SIZEGRIP = 0xFFFFFFF9,
            CARET = 0xFFFFFFF8,

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: spy 捕获 工具 解决 控件

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网