当前位置: 首页 > news >正文

python 中Windows编程一些心得

主要思路 当我们显示所有消息的信息时,我们可以知道Windows后台是如何传递消息给我们,但是并不会把所有东西写进开发文档  ,这有一定的原因  但是 我们要自己去理解或者猜想开发者思路或者根据反馈结果来分析消息的作用,不然永远只是会抄别人代码 自己也没有什么收获或者自己不会用编程解决问题。还有最重要一点,编程是让别人得到帮助 而不是去损害别人。没有人喜欢破坏者  所以我不会教你如何给别人制造困难,这个世界只有帮助别人的人受人尊敬。下面我给出一点自己分析消息的方法:

我们知道 当创建一个窗口是 Windows会把消息传递给我能自己的应用程序窗口过程 但是,大部分消息都是由Windows自己处理,从下面的代码就可以看出 但是你会发现有些消息并未在微软的开发者文档中给出 或者是我自己没找到,下面是python语法给出的 其他程序也是同样思路

while user32.GetMessageW(ctypes.byref(msg), None, wParam, lparam) != 0:#PeekMessageA在没有消息时返回0  有消息是返回非零if(user32.PeekMessageA(ctypes.byref(msg),None,wParam,lparam,win32con.PM_NOREMOVE)):print("检测自己应用程序收到消息", msg.message, "十六进制", hex(msg.message))match msg.message:case 0x83f1:# match(wParam):#     case win32con.VK_LBUTTON:print("按下有窗口最大化最小化按钮的消息-- -----------")case 0x113:print("收到定时器消息", msg.message, "十六进制", hex(msg.message))passelse:  #没有消息时处理# # print("heoll 这是空闲时间")# drawRectangle(hwnd)# # user32.UpdateWindow(hwnd)passuser32.TranslateMessage(ctypes.byref(msg))user32.DispatchMessageW(ctypes.byref(msg))

根据检测消息运行输出结果发现:0x83f1消息并未找到,可能是自定义消息 ,以及Windows有时会自动发送定时消息 0x113

检测自己应用程序收到消息 33777 十六进制 0x83f1
按下有窗口最大化最小化按钮的消息-- -----------
检测自己应用程序收到消息 33777 十六进制 0x83f1
按下有窗口最大化最小化按钮的消息-- -----------
检测自己应用程序收到消息 33777 十六进制 0x83f1
按下有窗口最大化最小化按钮的消息-- -----------
检测自己应用程序收到消息 33777 十六进制 0x83f1
按下有窗口最大化最小化按钮的消息-- -----------
检测自己应用程序收到消息 275 十六进制 0x113
收到定时器消息 275 十六进制 0x113
检测自己应用程序收到消息 674 十六进制 0x2a2
检测自己应用程序收到消息 674 十六进制 0x2a2
检测自己应用程序收到消息 674 十六进制 0x2a2
窗口没有获得焦点 消息编号: 8 wParam 0
检测自己应用程序收到消息 1126 十六进制 0x466
检测自己应用程序收到消息 18 十六进制 0x12

相关文章:

  • C Primer Plus阅读--章节13-15
  • matplotlib 默认属性和绘图风格
  • 【教3妹学编程-算法题】需要添加的硬币的最小数量
  • 如何搭建eureka-server
  • STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计
  • 分布式ID服务实践
  • 数据库系统相关概念
  • windows如何解决端口冲突(实用篇)
  • 设计模式--建造者模式
  • 【开源】基于Vue.js的实验室耗材管理系统
  • 人大金仓V8R6进阶授权操作
  • 二叉树的最大深度(力扣
  • adaptive原理
  • Ubuntu环境下使用nginx实现强制下载静态资源
  • perf与火焰图-性能分析工具
  • iOS 颜色设置看我就够了
  • Java,console输出实时的转向GUI textbox
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Octave 入门
  • Python连接Oracle
  • ucore操作系统实验笔记 - 重新理解中断
  • 百度小程序遇到的问题
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 我看到的前端
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • (3)nginx 配置(nginx.conf)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (MATLAB)第五章-矩阵运算
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二)丶RabbitMQ的六大核心
  • (六)Hibernate的二级缓存
  • (十一)手动添加用户和文件的特殊权限
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)ABI是什么
  • (转)菜鸟学数据库(三)——存储过程
  • (转)树状数组
  • .Net 4.0并行库实用性演练
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .Net Core与存储过程(一)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET中两种OCR方式对比
  • /etc/sudoers (root权限管理)
  • @Not - Empty-Null-Blank
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [android] 请求码和结果码的作用