FindWindow(NULL,_T("加载监视器"));和Error: CWinThread.../...0xC0000005: Access Violation.走一起了,呵呵

Pywinauto+某应用程序(学习至第9讲)--受阻 受阻点使用pywinauto,chrome legacy window下控件无法定位。因其下为非标准控件,故转战pyautogui。1、选择应用程序窗口中,针对窗口类型/窗口标题操作,容易报错。 目前可选项只有: 使用正确的窗口标题也无法做到2、窗口最小化时,无法进行恢复正常大小操作;无法进行指定应用程序打开操作;1、在线安装 2、离线安装 2、自动化的切入点–后端技术、程序个数 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qdJntpUS-1656467044603)(C 阅读详情
第一:在线程内核函数的某一个子操作函数中,调用了:
HWND hwndJZJSQ = FindWindow(NULL,_T("加载监视器"));
if( IsWindow(hwndJZJSQ) )  PostMessage(hwndJZJSQ, WM_CLOSE, 0, 0);
发现:无论“加载监视器”有无,IsWindows均成立,hwndJZJSQ均有值

第二:在执行接下来的一个子操作函数时,Debug下会引起
Error: CWinThread::PumpMessage called when not permitted.
First-chance exception in DCMS3000Main.exe (MFC42D.DLL): 0xC0000005: Access Violation.
Release版本下,会引起崩溃

Debug下一般都会指向该函数的某一行(GetMessage一般都是返回TRUE的):需要注意的是,下述调试点一般会发现:m_msgCur.msg = 0x10; //也即WM_CLOSE消息,为什么它处理不了???
BOOL CWinThread::PumpMessage()
{
 ASSERT_VALID(this);

 if (!::GetMessage(&m_msgCur, NULL, NULL, NULL))
 {
#ifdef _DEBUG
  if (afxTraceFlags & traceAppMsg)
   TRACE0("CWinThread::PumpMessage - Received WM_QUIT.\n");
  m_nDisablePumpCount++; // application must die
   // Note: prevents calling message loop things in 'ExitInstance'
   // will never be decremented
#endif
  return FALSE;
 }

#ifdef _DEBUG
 if (m_nDisablePumpCount != 0)
 {
  TRACE0("Error: CWinThread::PumpMessage called when not permitted.\n");
  ASSERT(FALSE);
 }
#endif

#ifdef _DEBUG
 if (afxTraceFlags & traceAppMsg)
  _AfxTraceMsg(_T("PumpMessage"), &m_msgCur);
#endif

 // process this message

 if (m_msgCur.message != WM_KICKIDLE && !PreTranslateMessage(&m_msgCur))
 {
  ::TranslateMessage(&m_msgCur);
  ::DispatchMessage(&m_msgCur);
 }
 return TRUE;
}                                                                                                                                                                                                                                  第三:调试详情

 

[Chrome源码阅读] 理解Browser进程 首先贴出一张来自于Chrome官网上design document上的图。这张图描述了Browser进程中主要几个类之间的相互关系。 这张图仅仅列出了Browser进程里的2个线程:UI线程和IPC线程。UI线程是主线程,主要负责整个UI的渲染和消息的响应,包括自身的消息和从Render 进程发过来的消息。IPC线程负责Browser进程与Render进程之间的通信和网络资源消息的过滤。 阅读详情

相关推荐

深度强化学习制作森林冰火人游戏AI(三)向游戏输出键盘控制信息

概述 本文讲如何通过python发送键盘控制命令控制游戏 前篇:深度强化学习制作森林冰火人游戏AI(二)获取游戏屏幕 获取窗口句柄 窗口句柄就像是进程唯一process id 一样,应该是每个窗口有唯一的handle 获取窗口句柄的方法 window_name="FlashPlay" handle=windll.user32.FindWindowW(None, window_name) 嗯,没错,复制上篇文章的 查询句柄的子句柄 一个句柄下面可能还有其他的句柄,就像是程序下面挂着几个其他的子程序一样 #h

蛇皮怪皮蛇的博客 2153

chrome窗口

这个窗口是gpu进程创建的,作为一个子窗口嵌入到父窗口 Chrome_WidgetWin_1 中,chrome在使用gpu渲染时,网页的渲染最后会在GPU中渲染,即 Intermediate D3D Window 窗口。所以,我们需要一个假的 HWND,其窗口类为Chrome_RenderWidgetHostHWND 作为可访问性树的根每个选项卡。默认容器窗口是包含网页的整个窗口WebContents 等。// 用于匹配 Chrome 窗口的窗口类的前缀。浏览器将其重新设置为其窗口的子窗口。

LIJIWEI0611的博客 5563

Python爬虫实战:西瓜视频m3u8解析与FFmpeg下载合并

网络爬虫与流媒体解析是Python工程实践中的常见需求,其核心在于通过HTTP请求获取数据并解析特定格式。m3u8作为HLS协议索引文件,将视频切分为ts分片,便于流式传输。结合FFmpeg的多线程处理能力,可高效完成分片下载与合并,技术价值在于提升视频处理效率。典型应用场景包括视频下载、离线缓存等。本文以西瓜视频为例,详细讲解如何使用requests库提取m3u8地址,并调用FFmpeg批量下载ts分片合并为mp4,涵盖请求伪装、索引解析及常见问题排查。

weixin_31856057的博客 15万+

谷歌浏览器的源码分析(34)

通过上一次的分析,我们看到所有网页数据经过HTML分析器之后,都会变成一个一个RenderObject对象,那么这些RenderObject对象又是怎么样显示到界面上面的呢?现在就带着这个疑问来分析下面的代码,这样肯定会找到解决方法的。怎么样找到入口呢?其实可以先从界面显示的类开始,可以看到显示界面的窗口类名称叫做Chrome_RenderWidgetHostHWND,有了这个类名称,就...

anjichan4261的博客 613

FPGA实现电机转速PID控制

通过纯RTL实现电机转速PID控制,包括电机编码器值读取,电机速度、正反转控制,PID算法,卡尔曼滤波,最终实现对电机速度进行控制,使其能够渐近设定的编码器目标值。

STATEABC的博客 7481

Unity动态创建Avatar骨骼映射

Unity Avatar骨骼映射动态创建,适配Unity通用动画,无需经过第三方建模软件,可运行时创建

Nbin_Newby的博客 1万+

Chrome如何显示网页

Chrome如何显示网页  Chromium如何显示网页 概念上的应用层 WebKit WebKit Port Webkit胶粘层 浏览器进程 底层浏览器进程对象 高层浏览器进程对象 演示示例 “设置光标”消息的处理过程 鼠标单击消息处理过程 译:whzeng@126.com  本文档从底层到上

zengwh的专栏 5249

uniapp开发AndroidAPP集成支付宝支付及问题处理(商家订单参数异常等),集成微信小程序支付及问题处理(运行真机调试白屏)

2、选择支付宝支付,调用支付接口唤起支付宝支付。

qq_16785561的博客 3486

谷歌chrome浏览器的源码分析(七)

上一次说到通过管道把接收到的HTTP数据通知另一个线程处理,它不是直接发送数据过去,而是把数据在共享内存里的句柄发送过去,达到高效通讯的目的。下面就来分析资源处理进程里,接收到这个消息之后,做些什么处理。这个消息的处理代码如下:   #001  void ResourceDispatcher::OnReceivedData(int request_id, #002              

GarfieldEr007的专栏 4046

VS2019集成AddressSanitizer:C++内存错误检测实战指南

在C++开发中,内存管理是核心挑战之一,涉及堆、栈和全局变量的分配与释放。其原理在于程序运行时对内存地址的访问必须严格遵循分配边界和生命周期规则,否则会导致缓冲区溢出、释放后使用等严重错误。这类问题的技术价值在于直接影响程序的稳定性、安全性和性能,是高质量软件必须攻克的基础难题。应用场景广泛,从嵌入式系统到大型服务器软件,都需要可靠的内存错误检测机制。AddressSanitizer(ASan)作为一种编译时插桩技术,通过影子内存和运行时检查,能精准定位堆缓冲区溢出、释放后使用等隐蔽错误。本文以Visual

weixin_34356310的博客 279

解决Windows 10更新失败错误代码0x80070643

在Windows 10操作系统的更新过程中,用户时常会遇到各类错误代码,这些代码通常成为顺利完成更新的绊脚石。其中,错误代码0x80070643是一个较为常见的更新失败提示,它可能导致系统更新停滞不前。面对这一挑战,本文将详细介绍如何有效解决这一错误,帮助用户顺利完成Windows 10的更新。

nntxthml的博客 1827

利用Chrome进行远程移动端调试

Chrome还可以支持远程移动端调试,方法如下: 1 在开发机器上,按F12打开开发者工具,在开发者工具的右上角选择更多工具(More tools)->检查设备(Inspect devices),见下图 2 利用USB数据线连接个人手机,并在手机上启用USB调试者模式。 3 在个人手机上打开Chrome。 4 在开发机器的开发者工具上,我们会发现我们的移动设备以及相关的网页信息,选择网页后的

甘焕的博客 1万+

十年芯片资深IC设计工程师面经系列(四)SDC约束

set_driving_cell:当我们的设计是模块级(Block level)的design时,我们的设计前面一般还有其他的设计,那么前面模块的输出便是我们模块的输入,5.1set_false_path:可以单独的时钟或者路径进行约束。set drive :当我们的设计是芯片级(Chip level)的顶层设计时,芯片外围电路要驱动的是负载较大的IO单元,故需要的驱动能力较强,:set_load 是指output端口的负载,设置的值会影响输出到端口的net上的电容,从而影响相应的路径延时。

weixin_47349046的博客 1773

【WebDriver API】python之selenium上传文件

上传文件是比较常见的Web功能之一,但WebDriver并没有提供专门用于上传的方法,如何实现上传操作关键在于上传文件的思路。 一般Web页面上的上传功能的操作需要单击“上传”按钮后打开本地的Window窗口,从窗口选择本地文件进行上传。而WebDriver是无法操作Windows控件的,所以,对于初学者来说,一般思路会卡在如何识别Window控件这个问题上。 对于Web页面的上传功能实现一般...

w68688686的专栏 589

跨平台也要跑得像原生一样顺:SAP GUI for Java 的安装、配置、运维与自动化实战

摘要:SAP GUI for Java 作为跨平台客户端解决方案,在 S/4HANA 时代仍发挥关键作用,特别适用于 macOS/Linux 环境下的 ABAP 开发和系统运维。其主要优势包括:平台无关性(支持 Windows/macOS/Linux/UNIX)、与 Windows 版本一致的交互体验、对核心事务码(如 ST22/SM21)的完整支持。版本管理需注意 7.80 已停止支持,建议升级至 8.10。安装支持原生包和通用 JAR 两种方式,推荐团队标准化版本和连接配置(通过 SAP UI Land

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 678

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

标签页-窗口-渲染进程

打开chromium.exe默认打开一个标签页,一般来说,会在任务管理器中会出现三个进程,分别是主进程,GPU进程,渲染进程,其他进程暂且不说。所有进程中,基本上是只有主进程才有窗口被创建。 主进程就是我们看到浏览器的部分,这里可见的有两个窗口组成,其他窗口是不可见的。一个是主窗口Chrome_WidgetWin,另一个是每个标签页都独占的页面内容的窗口Chrome_RenderWidgetHo

ckkyjtqlt的专栏 2895

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

使用JNA解决自动化测试无法做密码输入操作的问题

在做页面自动化(以使用selenium为例)的时候,很常见的一个场景就是输入密码。往往对于输入框都使用WebElement的sendKeys(CharSequence... keysToSend)的方法。    /**    * Use this method to simulate typing into an element, which may set its value.   

落叶翩翩的优快云博客 6091

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VC ++ 后台消息模拟

—HWND TO=0; —//TO=::FindWindow(_T("Chrome_RenderWidgetHostHWND"),NULL); —TO=::FindWindow(_T("360se6_Frame"),NULL); —if(TO==0) —{ — MessageBox(_T("NG")); —} —::SendMessage(TO,WM_LBUTTONDOWN,1...

weixin_30765577的博客 469

python chrome调用打印的样例

python selenium 控制chrome 调用打印的时候会找不到元素,控制不到的情况 # 点击打印 wait.until(ec.presence_of_element_located((By.LINK_TEXT, "打印"))).click() # 父窗口 类名: Chrome_WidgetWin_1 标题: 中行网银(香港) - Google Chrome father = win32g...

qq_17782389的博客 3471

chrome PPAPI 开发(一)

    最近遇到一个需要在chrome49版本的浏览器上支持老版本 ActiveX 插件的问题。     在网上翻来覆去找资料,最终的矛头都指向chrome的 PPAPI 开发,于是下载了一个ppapi的资源包。大家可从“我的资源”去下载。     下面说一下如何开发一个可调试的ppapi 例子的过程。     1. 环境准备     安装Visual Studio。我的是VS2013。     ...

gccflagger的博客 7418

快速获取Edge/Chrome窗口句柄指南

要获取 Microsoft Edge 或 Google Chrome 浏览器窗口的句柄(HWND),可以通过 Windows API 实现。

343

按键精灵简单句柄简单例子

按键精灵简单句柄简单例子 Hwndf = Plugin.Window.Find(0, “话费直充 - 360安全浏览器 10.0”) Hwndson = Plugin.Window.FindEx(Hwndf, 0, “Chrome_RenderWidgetHostHWND”, 0) Call Plugin.Window.Min(Hwndf) i=1 Do While true Delay 5 Ca...

海派白斩鸡的博客 5845

获取控制台窗口的句柄(HWND)和程序中输出回车键

一、获取窗口句柄基于类名或窗口名称: http://support.microsoft.com/kb/124103/zh-cn Win32 API 提供用于获取与一个控制台应用程序相关联的窗口句柄没有直接方法。但是,您可以获得通过调用 FindWindow() 窗口句柄。此函数可检索窗口句柄基于类名或窗口名称。  调用以确定当前的控制台标题 GetConsoleTitle()。然后提供当前

冰峰的专栏 1万+
上一篇: 访问已delete并=NULL的指针变量后,出现的183错,当文件已存在时,无法创建该文件。
下一篇: VC6.0 EXE程序和其DLL共同调试,解决DLL的相关错误
PerfectToday
博客等级 码龄18年 46粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值