当前位置: 首页 > 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与火焰图-性能分析工具
  • hexo+github搭建个人博客
  • @jsonView过滤属性
  • [LeetCode] Wiggle Sort
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 77. Combinations
  • Android 架构优化~MVP 架构改造
  • Babel配置的不完全指南
  • CentOS6 编译安装 redis-3.2.3
  • gulp 教程
  • Java 内存分配及垃圾回收机制初探
  • Javascript弹出层-初探
  • Laravel5.4 Queues队列学习
  • Netty 4.1 源代码学习:线程模型
  • sessionStorage和localStorage
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 第2章 网络文档
  • 服务器从安装到部署全过程(二)
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 微信小程序:实现悬浮返回和分享按钮
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 中文输入法与React文本输入框的问题与解决方案
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​决定德拉瓦州地区版图的关键历史事件
  • (六)DockerCompose安装与配置
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)http协议
  • (转)setTimeout 和 setInterval 的区别
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .NET MVC第三章、三种传值方式
  • .NET 常见的偏门问题
  • .NET 读取 JSON格式的数据
  • .Net面试题4
  • .NET项目中存在多个web.config文件时的加载顺序
  • @NestedConfigurationProperty 注解用法
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [AIGC] SQL中的数据添加和操作:数据类型介绍