如何使用SPY++查找】的更多相关文章

spy++可以用来查找桌面程序(c/s)的窗口句柄,实现自动化测试. def find_idxSubHandle(pHandle, winClass, index=0): """ 已知子窗口的窗体类名 寻找第index号个同类型的兄弟窗口 """ assert type(index) == int and index >= 0 # 断言 handle = win32gui.FindWindowEx(pHandle, 0, winClass,…
自动化测试中,如果需要做UI automation的时候往往需要抓取object的工具.实际上这种工具有很多,认识的大牛使用SPY++,于是我也选择了这个.下面列出基本使用方法.有点像XACC spy.不过感觉没有那个好用.因为抓取的框是黑框,感觉没有XACC spy中的红框更加醒目.由于是一个简单的问题所以我不麻烦大牛,自己来.不过刚刚跟大牛聊了下,他觉得XACC spy的体验差一些,而且它generate Code出来的只能他自己用.SPY++不光是用来测试,dev debug issue也…
(本文尝试通过一些简单的实验,来分析Windows的窗口机制,并对微软的设计理由进行一定的猜测,需要读者具备C++.Windows编程及MFC经验,还得有一定动手能力.文中可能出现一些术语不统一的现象,比如“子窗口”,有时候我写作“child window”,有时候写作“child”,我想应该不会有太大影响,文章太长,不一一更正了) 问题开始于我的最近的一次开发经历,我打算把程序的一部分界面放在DLL中,而这部分界面又需要使用到Tooltip,但DLL中的虚函数PreTranslateMessa…
http://www.cnblogs.com/Charltsing/p/slv32.html 欢迎交流:QQ564955427 读取标准的32位listview控件中的数据,网上已经有很多代码了.今天有空写了个工具,测试读取TcpEye软件中的数据成功. 具体见程序附件.  工具下载 v1.0  (本程序可以自己选择过滤窗口标题或者类名,然后再右侧选择要抓取的listview控件,点击读取按钮即可),推荐先用Spy++查找窗体. 运行本工具需要.net4.5框架. ***************…
首先我要判断是否已经打开了参照面板. 然而cad自己没有相关的系统变量.这时我就需要利用到win32api来判断程序是否打开了参照面板了. 首先学习的是 https://blog.csdn.net/bcbobo21cn/article/details/50930221 这篇文章很好的说明了c#如何调用win32api,以及大家可能遇到的各种问题. 我来存一下: Win32 API可以直接控制Microsoft Windows的核心,因为API(Application Programming In…
今天改动一个工具时遇到一个有意思的问题,打开某个窗体时弹出一些不相关的窗体.须要用户自己去手动点击后才干继续.保证不了自己主动处理,如今解说决方案记录一下,例如以下 主要使用windows提供的FindWindow和FindWindowEx,參考代码例如以下 wchar_t szClassName[256]; //用于记录窗体标题  StringCchPrintf(szClassName, 256, L"Client%02d - VMCalc", m_Index + 1);   HWN…
1.所有程序最小化 uses ComObj;   var    shell : OleVariant; begin      shell := CreateOleObject('Shell.Application');   shell.minimizeAll; end; 2.最小化其他程序 spy++ 查找要最小化的程序classname var Indicador :Integer; begin // Find the window by Classname Indicador := Find…
什么是句柄 维基百科:在程序设计中,句柄(handle)是Windows操作系统用来标识被应用程序所建立或使用的对象的整数.其本质相当于带有引用计数的智能指针.当一个应用程序要引用其他系统(如数据库.操作系统)所管理的内存块或对象时,可以使用句柄 句柄能干嘛 在得到一个应用程序的句柄以后,几乎可以为所欲为,下面用两个例子来说明句柄能够做的一些事情. 利用句柄实现不可点击按钮的点击操作 在很多应用程序中,会存在一些不可点击的按钮,而这些按钮可以通过句柄来实现点击.例如注册按钮.还会有很多文本,而这…
课程分四个大章节 初级篇,中级篇,进阶篇,高级篇 初级篇内容:编写一个完整的,简单的外挂 C++的数据类型:Byte,Word,DWORD,int,float API函数的调mouse_event,GetWindowRect,SetCursorPos,FindWindow,SendMessage) CE5.4工具的使用方法 中级篇内容:调试工具的使用技巧,功能CALL的概念 调试工具OD1.1的使用技巧(如硬件断点,条件断点,内存断点. 常用汇编指令与对应高级语言的转换. 游戏功能CALL概念…
/// <summary> /// 获取文本框控件 /// </summary> /// <param name="hwnd">文本框所在父窗口</param> /// <param name="text">文本框文本,null为搜索所有</param> /// <param name="iLevel">父窗口上第几个文本框</param> /// &…
首先介绍基本WindowsApi: public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 函数说明:在窗口列表中寻找与指定条件相符的第一个窗口 导入库:user32.lib 头文件:winuser.h 命名空间 using System.Runtime.InteropServices; 参数说明 lpClassName String,窗口类名 lpWindowName String,窗口标…
很无奈,写了很长时间,最后保存时网页失去响应,真是要命呢.本来想就此放弃了,但是想还是粗略的重写一次吧,希望日后可以对朋友有一定的帮助. Microsoft.Spy工具是一个基础工具,我们简要介绍一下使用方法: spy在vs有自带的,也可以在网下直接下载. 打开spy工具,主界面如下: 今天我们使用vnc作为一个示例 目标是在server内写入192.168.2.200,并点击Options第二个按钮 第一步,如何获取vnc窗体,使用spy进行窗体查找 拖动查找工具图标到需要的界面上. 这样我们…
打开spy++,窗口截图如下,点击窗口搜索按钮(红框标识) ,如果找不到对应的窗口,鼠标右键刷新即可. 鼠标左键点击窗口搜索图标,按住不放,拖到需要抓取消息的窗口上: spy++会自动在列表中高亮定位抓取到的窗口,如下图所示,notepad++的new1窗口被抓取到了.再点击菜单栏 监视->日志消息: 在弹窗的消息选项弹窗中,可以选择需要打印的日志的消息,可以通过消息组选择一类消息,也可以在左侧"要查看的消息"中,通过鼠标左键点击选择和取消选择,也可以通过连续按键盘字母键查找对应…
背景 最近刚接手一个katalon编写的UI自动化项目,页面最近刚改版,已有用例很多查找元素失败.了解到katalon元素定位支持xpath,所以直接使用chrome开发者工具打开目标页面+获取xpath,进行xpath更新,更新后的xpath还是经常定位元素失败. 网上搜索资料后,发现katalon自带的Spy功能就是用于Objects的Selector.Xpath获取和校验,非常好用. 获取object的Selector.Xpath (1)点击自带的Spy Web/Spy Mobile (2…
很多朋友都对窗口句柄比较迷糊,这篇短文就以spy++这个软件为主,介绍下窗体句柄和使用按键插件时,如果对这个句柄发送消息,即所谓的后台挂机.spy++这个软件来自VC++,装好VC后,就可以在工具中看到.我们以“记事本”为例,看看如果给记事本发送按键消息.首先启动记事本随后启动SPY++使用spy++的查找功能点开后的效果我们把黑色准星拖动到记事本窗体上然后点击“确定”,看到了SPY++已经显示了下图红色的内容.这三个句柄从上到下依次是:记事本的主句柄文字输入框的句柄状态栏的句柄我们要给记事本发…
我安装的是vs2012,先找到SPY++工具打开 打开方式: 方式1:通过路径(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2012\Visual Studio Tools)找到SPY++工具…
常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名空间 (1)获得当前前台窗体句柄 [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetForegroundWindow(); 返回值类型…
最近项目中需要做Windows消息截获操作,在网上找了一些资料. public class WindowsAPI { /// <summary> /// 回调函数代理 /// </summary> public delegate bool CallBack(int hwnd, int lParam); public const int WM_GETTEXT = 0x000D; public const int WM_SETTEXT = 0x000C; /// <summary…
[送给在路上的程序猿] 对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步. 对于一个开发团队而言.能在短期内开发出用户惬意的软件系统是起核心竞争力的体现. 每个程序猿都不能固步自封,要多接触新的行业,新的技术领域,突破自我. 32位与64位 地址与内存的关系 4G = 4*1024M = 4*1024*1024k = 4*1024*1024*1024 Byte字节 = 2…
原文转自 http://jingyan.baidu.com/article/3a2f7c2e76584a26aed61174.html 1.Spy++ 是Visual Studio 自带的工具(菜单"Tools" --> "Spy++"),下面的 Spyxx.exe 也是启动 Spy++ . 2.spy++ 是微软 Visual Studio 编译器自带的一款工具.它可以显示系统对象(包括进程.线程和窗口)之间关系的图形树,搜索指定的窗口.线程.进程或消息,…
使用spy++捕获到的消息详解 主要是今天正好自己用到. 原来也有用过SPY++查看消息,然后自己SendMessage或者PostMessage 直接发送消息给目标程序.但是原来一用就有效果,今天要发的窗口是QT写的,所以就想着把消息尽量弄得和SPY++里捕获到的一样,看看是否能行. 嗯,最终依然还是不行.不过也明白了SPY++捕获到的消息字串具体对应的是哪个参数了,特在此记录,方便以后查找,也方便需要的朋友. 因为是重复的,我就只讲顶上的三条就行. 第一条:<00001> 00130042…
C. Spy Syndrome 2 time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output After observing the results of Spy Syndrome, Yash realised the errors of his ways. He now believes that a super spy such a…
在SQL2008查找某数据库中的列是否存在某个值 --SQL2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型:1为文字类型.2为数值类型 )--需要搜索的名字 ) as --创建临时表存放结果 create table #tbl(PK int identity primary key ,tbl sysname,col sysname) ),) begin declare curTable cursor fa…
问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个. 输入格式 第一行包含一个整数n. 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000. 第三行包含一个整数a,为待查找的数. 输出格式 如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1. 样例输入 61 9 4 8 3 99 样例输出 2 数据规模与约定 1 <= n <= 1000.     作者注:在做此题的时候,第十行查找相等的时候多循环了一次,因此一直不满分.…
组件创建了,就有方法找到这些组件.在DOM.Jquery都有各自的方法查找元素/组件,ExtJS也有自己独特的方式查找组件.元素.本次从全局查找.容器内查找.form表单查找.通用组件等4个方面介绍组件的查找方式. 目录 1. 全局查找方式 2. 容器内查找 3. form查找子组件 4. 通用组件查找方式 1. 全局查找方式 全局查找方式指在整个ExtJS框架中查找组件. 1.1 Ext.getCmp(id) :返回此id对应的组件 说明:此方法是在所有组件中查找匹配此id的组件. 参数: ①…
今天这篇博客就聊聊几种常见的查找算法,当然本篇博客只是涉及了部分查找算法,接下来的几篇博客中都将会介绍关于查找的相关内容.本篇博客主要介绍查找表的顺序查找.折半查找.插值查找以及Fibonacci查找.本篇博客会给出相应查找算法的示意图以及相关代码,并且给出相应的测试用例.当然本篇博客依然会使用面向对象语言Swift来实现相应的Demo,并且会在github上进行相关Demo的分享. 查找在生活中是比较常见的,本篇博客所涉及的这几种查找都是基于线性结构的查找.也就是说我们的查找表是一个线性表,我…
要自当前光标位置向上搜索,请使用以下命令:         /pattern   Enter           其中,pattern   表示要搜索的特定字符序列.         要自当前光标位置向下搜索,请使用以下命令:         ?pattern   Enter           按下   Enter   键后,vi   将搜索指定的   pattern,并将光标定位在   pattern   的第一个字符处.例如,要向上搜索   place   一词,请键入:        …
在程序中,使用查找功能是少之不了.今天在ASP.NET环境下演示一回. 在cshtml视图中,有三个文本框,让用户输入关键词,然后点击最右连的“搜索”铵钮,如果有结果将显示于下面. Html: 表格放2行.一行是标题,一行作为输入框. jQuery代码: controller: 处理好条件,传入数据库中去: 根据需要,你可以使用OR或者AND. 条件中,你可以实现"=","<>","LIKE","BETWEEN xxx AN…
本文地址 原文地址 分享提纲: 0. 引子 1. 感性认识GeoHash 2. GeoHash算法的步骤 3. GeoHash Base32编码长度与精度 4. GeoHash算法 5. 使用注意点(曲线突变--8个邻居来解决) 6. geohash的php .python.java.C#实现代码 7. 参考资料 引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西.某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐…
jQuery 的选择器常用的元素查找方法 基本选择器: $("#myELement")    选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div")           选择所有的div标签元素,返回div元素数组 $(".myClass")      选择使用myClass类的css的所有元素 $("*")             选择文档中…