自适应型网站建设服务电话wordpress创建公告
web/
2025/10/2 11:16:43/
文章来源:
自适应型网站建设服务电话,wordpress创建公告,折扣手游平台app排行榜,百度优化是什么目录
1、使用SPY查看窗口的信息
2、使用SPY查看某些软件UI窗口用什么UI组件实现的
2.1、查看海康视频监控客户端安装包程序
2.2、查看华为协同办公软件WeLink
2.3、查看字节协同办公软件飞书
2.4、查看最新版本的Chrome浏览器
2.5、查看小鱼易连视频会议客户端软件
2.6…目录
1、使用SPY查看窗口的信息
2、使用SPY查看某些软件UI窗口用什么UI组件实现的
2.1、查看海康视频监控客户端安装包程序
2.2、查看华为协同办公软件WeLink
2.3、查看字节协同办公软件飞书
2.4、查看最新版本的Chrome浏览器
2.5、查看小鱼易连视频会议客户端软件
2.6、常用的UI界面库
3、查看窗口最小化时的窗口位置
4、查看主流软件的窗口风格猜测其UI界面是如何实现的
5、将所有窗口的信息导出到文件中
6、最后 VC常用功能开发汇总专栏文章列表欢迎订阅持续更新...https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程专栏文章列表欢迎订阅持续更新...https://blog.csdn.net/chenlycly/article/details/125529931C软件分析工具从入门到精通案例集锦专栏文章正在更新中...https://blog.csdn.net/chenlycly/article/details/131405795C/C基础与进阶专栏文章持续更新中...https://blog.csdn.net/chenlycly/category_11931267.html SPY是微软Visual Studio自带的一个用来查看窗口属性、窗口消息、进程与线程的工具在日常工作中处理UI窗口事务用的比较多今天就来给大家讲一下这个工具的用途。使用该工具去查看窗口属性可以去辅助分析C客户端UI程序的问题。
1、使用SPY查看窗口的信息 SPY工具打开后会显示当前系统中所有打开的窗口信息如下所示 如果系统有窗口发生改变比如新增或销毁窗口则需要点击工具栏中的刷新按钮手动刷新一下。 可以点击工具栏中的望远镜按钮 在打开的窗口搜索窗口中可以按窗口句柄、窗口标题或者窗口类名去搜索目标窗口以企业微信窗口标题为例如下所示 这样就搜索到了企业微信的主窗口右键点击就可以查看企业微信主窗口的信息比如窗口坐标 点击样式标签页可以查看到窗口的基本样式和扩展样式如下 如果窗口风格中有WS_CHILD表示该窗口是子窗口窗口是否处于显示状态非掩藏状态看窗口是否WS_VISIBLE风格。关于窗口风格的详细说明可以查看我之前写的文章VC Win32界面编程中的窗口风格要点总结附源码https://blog.csdn.net/chenlycly/article/details/121572701此外还可以点击类标签页查看窗口类名点击进程标签页查看窗口所属进程和线程信息。
2、使用SPY查看某些软件UI窗口用什么UI组件实现的 点击工具栏中的查看窗口按钮弹出如下窗口 左键点击图中按钮一直按着不放然后将光标移动到目标程序窗口上这样就能查看到窗口的类名通过类名我们大概就能猜出对应如软件的UI界面是使用何种UI组件实现的。
2.1、查看海康视频监控客户端安装包程序 使用上面的方法探测海康视频监控客户端安装包程序的主窗口探测到的窗口类如下所示 看到安装包主窗口用的是对话框。也可以探测安装包窗口中的编辑框和按钮的窗口类分别是Edit和Button所以估计该安装包是用MFC实现的。
2.2、查看华为协同办公软件WeLink 使用上面的方法探测WeLink的登陆窗口探测到的窗口类如下所示 可以看到类名为Chrome_WidgetWin_1包含Chrome字样所以估计WeLink UI界面是用Chrom浏览器UI组件实现的。也可以探测登陆后的主窗口主窗口的类名也是Chrome_WidgetWin_1。
2.3、查看字节协同办公软件飞书 使用上面的方法探测到飞书的窗口中均包含Chrome字样如下所示 从上图可以看出窗口类类名为Chrome_RenderWidgetHostHWND说明飞书软件的UI界面也是用Chrome浏览器UI组件实现的。
2.4、查看最新版本的Chrome浏览器 使用上面的方法探测Chrome浏览器窗口如下所示 窗口类名为Intermediate D3D Window好像并不包含Chrome字样是不是和上面讲的不一致最新版本的Chrome浏览器不再使用自己开源的UI界面组件了其实这个和GPU加速有关如果将GPU加速关闭掉窗口的类名中就会包含Chrome字样了。如果想搞清楚具体原因可以去查看开源项目Chromium源码去一探究竟
2.5、查看小鱼易连视频会议客户端软件 使用上面的方法探测小鱼易连视频会议客户端软件的主窗口如下所示 窗口类名为Qt5152QWindowIcon所以该软件的UI界面使用QT库实现的。
2.6、常用的UI界面库 这个地方顺便说一下Windows平台上C软件常用的UI界面库主要有MFC、duilib、QT和开源的Chrome UI组件库。 其中MFC库是微软的一套很古老的界面库实现酷炫的界面比较麻烦大型商业软件基本都不用了但有个行业除外很多炒股软件客户端还是使用。 duilib库是开源的很多软件都在使用比如百度云管家、爱奇艺PPS视频客户端、华为手机助手PC客户端等。 QT库最近几年比较好国产化进程被提到了一个很高的高度基本所有国产化系统上的软件客户端都使用QT有些软件为了实现跨平台Windows和Linux平台均使用QT跨平台库比如很多安防厂商的视频监控客户端软件都使用QT库比如海康威视和浙江大华的客户端软件。 Chrome浏览器的UI界面组件最近几年也比较火很多厂商的客户端软件都在使用比如华为的WeLink、字节飞书、阿里钉钉、有道字典、有道云笔记等。
3、查看窗口最小化时的窗口位置 以企业微信主窗口为例点击工具栏中的按钮然后将探测按钮拖到企业微信的主窗口上然后探测到 点击确定按钮就会弹出窗口的属性窗口在常规标签页中可以看到企业微信主窗口处于正常显示状态时窗口坐标如下所示 然后将企业微信主窗口最小化然后在上述页面中点击刷新按钮刷新一下窗口的信息看到窗口坐标变成如下的值 窗口的宽高不变但窗口left、top、right、bottom坐标值变成了很大的负值所以将窗口最小化时系统将窗口移动到一个远离桌面可见区域的一个地方了窗口还处于显示状态是和掩藏状态有区别的。
4、查看主流软件的窗口风格猜测其UI界面是如何实现的 现在主流的视频会议软件都支持发送共享图像比如桌面共享其中两个厂商不仅支持桌面共享还支持在桌面上框出某个区域进行共享。我们在某个定制项目中客户要求也要支持区域共享应该是这两个厂商参与项目竞标向客户宣导了这个功能所以客户也想实现这个功能。 于是我们就研究了支持该功能的友商的软件看看是什么样的交互模仿着他们的效果实现一下。区域共享的效果如下 框选共享区域的选择是客户拖动的拖标题栏可以移动整个选择框窗口拖动窗口边界区域可以调整选择框的大小。此外选择框中间区域是透明的边框比较简单这个透明区域是怎么实现的呢猜测可能是用Layered分层窗口实现的。于是使用SPY查看区域选择框窗口的属性查看窗口风格果然设置了WM_EX_LAYERED属性如下所示 选择区域窗口边界不透明中间区域透明应该是调用系统API函数UpdateLayeredWindow实现的。具体的细节之前已经写成了一篇详细的文章想了解的可以去查看这篇文章使用Layered分层窗口实现会议中的桌面区域共享功能https://blog.csdn.net/chenlycly/article/details/120756341
5、将所有窗口的信息导出到文件中 可以将某个时刻系统中打开的所有窗口信息保存到文件中如果要保存最新的需要点击工具栏中的刷新按钮将窗口信息刷成最新的然后再保存。点击菜单栏中的目录树-将目录树保存到文件中即可导出到一个后缀名为.sxt文件中该文件可以直接用记事本或者Notepad查看比如 这个导出到文件中的功能在排查软件因为窗口问题导致崩溃的问题时可能有用比如崩溃在某个窗口代码中但调用堆栈都是系统框架的代码我们只能看到句柄值我们搞不清楚到底是哪个窗口如果我们事先将窗口信息保存到文件中我们使用窗口句柄到文件中搜索就能看到窗口的类名等信息这样可能就能确定发生崩溃的窗口是哪个了我们在实际的项目中就使用过保存到文件的功能。
6、最后 除了上述功能之外还可以捕捉窗口的窗口消息有时在分析窗口消息问题会有一定的用处。SPY是比较简单的工具本文根据日常使用经验给大家做个总结以供借鉴和参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85588.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!