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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/216695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java面试题-Dubbo和zookeeper运行原理

远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 分布式注册中心和服务调…

线程|如何实现守护线程?

文章目录 守护线程是什么?守护线程有哪些应用场景?守护线程如何实现? 守护线程是什么? 守护线程是一种特殊的线程,它是在后台运行的线程,主要用于执行一些如垃圾回收、内存管理等“后台”任务。这些线程通常不会直接…

自定义字符串排序

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 一、题目描述 给定两个字符串 order 和 s 。order 的所有单词都是 唯一 的,并且以前按照一…

HNU计算机视觉作业三

前言 选修的是蔡mj老师的计算机视觉,上课还是不错的,但是OpenCV可能需要自己学才能完整把作业写出来。由于没有认真学,这门课最后混了80多分,所以下面作业解题过程均为自己写的,并不是标准答案,仅供参考 …

鸿蒙开发之状态管理@State

1、视图数据双向绑定 鸿蒙开发采用的声明式UI,利用状态驱动UI的更新。其中State被称作装饰器,是一种状态管理的方式。 状态:指的是被装饰器装饰的驱动视图更新的数据。 视图:是指用户看到的UI渲染出来的界面。 之所以成为双向…

计算机网络实验8

实验目的: 通过实验掌握下列知识: 掌握小型园区网络综合设计。 实验过程分析:配置命令 1) 罗列步骤2)中各设备的配置命令。 Internet: interface ser1/0 ip address 100.1.1.1 24 quit RTA: sysname RTA_LXL interfa…

Go性能分析工具

前言 作为后端研发,性能分析是我们在研发过程中必然会会遇到的环节,接口耗时、堆栈溢出、内存泄露等等。所谓工欲善其事必先利其器,之前在java中我们是使用arthas这一大神器,不得不说确实好用,想了解arthas的可以看下…

Stm32-使用TB6612驱动电机及编码器测速

这里写目录标题 起因一、电机及编码器的参数二、硬件三、接线四、驱动电机1、TB6612电机驱动2、定时器的PWM模式驱动电机 五、编码器测速1、定时器的编码器接口模式2、定时器编码器模式测速的原理3、编码器模式的配置4、编码器模式相关代码5、测速方法 六、相关问题以及解答1、…

Python自动化测试工具selenium使用指南

概述 selenium是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器爬虫等。官网地址为:相对于另外一款web自动化测试工具QTP来说有如下优点: 免费开源轻量级,不同语言只需要一个体积很小的依赖包支持多种系统&a…

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含python、JS工程源码)+数据集+模型(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 相关其它博客工程源代码下载其它资料下载 前言 本项目基于Keras框架,引入CNN进行模型训练,采用Dropout梯度…

鸿蒙系统最近删除文件夹的路径

鸿蒙手机上删除文件,会将文件移动到类似回收站的路径下,如何找到这个路径? 先找用文件管理器找到一个文件 比如aaa.jpg ,这时在调试的shell下面运行 find . -name aaaa.jpg 得到如下 这时再删除该文件 再次运行 find . -name a…

002_SSL routines:ssl3_get_record:wrong version number问题解决小记_FINISH

🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd🌐系列专栏:GitHub开源&…

【JUC】二十五、ThreadLocal内存泄漏问题(强软弱虚四种引用)

文章目录 1、引用之强软弱虚2、强引用3、软引用4、弱引用5、虚引用6、ThreadLocal回顾7、ThreadLocal使用弱引用的原因8、清除脏Entry9、最佳实践 不再会被使用的对象或者变量占用的内存不能被回收,就是内存泄露(累积可能导致OOM)。 1、引用之…

InnoDB在SQL查询中的关键功能和优化策略

文章目录 前言存储引擎介绍存储引擎是干嘛的InnoDB的体系结构 InnoDB的查询操作InnoDB的查询原理引入 Buffer Pool引入数据页Buffer Pool 的结构数据页的加载Buffer Pool 的管理Buffer Pool 的优化 总结 前言 通过上篇文章《MySQL的体系结构与SQL的执行流程》了解了SQL语句的执…

【LSM tree 】Log-structured merge-tree 一种分层、有序、面向磁盘的数据结构

文章目录 前言基本原理读写流程写流程读流程 写放大、读放大和空间放大优化 前言 LSM Tree 全称是Log-structured merge-tree, 是一种分层,有序,面向磁盘的数据结构。其核心原理是磁盘批量顺序写比随机写性能高很多,可以通过围绕这一原理进行…

代码随想录-刷题第二十三天

669.修剪二叉搜索树 题目链接:669. 修剪二叉搜索树 思路:确定递归函数定义,根据定义去构造二叉搜索树。 class Solution {// 定义:删除 BST 中小于 low 和大于 high 的所有节点,返回结果 BSTpublic TreeNode trimBS…

scala表达式

1.8 表达式(重点) # 语句(statement):一段可执行的代码# 表达式(expression):一段可以被求值的代码,在Scala中一切都是表达式 - 表达式一般是一个语句块,可包含一条或者多条语句,多条语句使用“…

Android BluetoothAdapter 使用(二)

Android BluetoothAdapter 使用(二) 本篇文章主要讲下蓝牙设备的配对. 1: 蓝牙设备列表展示 下 面是蓝牙设备adapter的代码: package com.test.bluetooth;import android.bluetooth.BluetoothDevice; import android.content.Context; import android.view.LayoutInflater;…

算法通关村第十八关 | 青铜 | 回溯

1.回溯 回溯可以视为递归的拓展,有着明确的解题模板。 很大的不同之处是有一个撤销处理结果的操作,但是大框架就是遍历 N 叉树。 回溯主要解决暴力枚举都解决不了的问题。 回溯模板: void backtracking(参数) {if (终止条件) {存放结果;…

金融密钥管理方案:DUKPT

文章目录 DUKPT体系基本密钥KSNBDKIPEKFKTKDEK 资料来源 DUKPT体系 Dukpt(Derived Unique Key Per Transaction)是一种密钥管理方案,旨在提供对称加密密钥的安全生成和管理。它通常用于保护金融交易和其他安全关键的数据传输。Dukpt 最初是为…