【进程检测】使用pywin32捕获window进程信息

需求

  1. 检测win系统依赖服务进程的运行情况,版本信息(进程检测器)
  2. 检测内外网连接情况

实现

进程检测

# 使用pywin32获取进程版本信息
def get_version_info(path):try:info = GetFileVersionInfo(path, '\\')ms = info['FileVersionMS']ls = info['FileVersionLS']version = f"{HIWORD(ms)}.{LOWORD(ms)}.{HIWORD(ls)}.{LOWORD(ls)}"return versionexcept Exception as e:print(f"无法获取版本信息: {e}")return Nonedef find_process_by_name(name, file):# 遍历活动进程for proc in psutil.process_iter(['pid', 'name', 'exe']):if name.lower() in proc.info['name'].lower():# 格式化输出print(f"{'-' * 40}进程 {name:^20} 存在.{'-' * 40}")print(f"找到进程: {proc.info['name']} (PID: {proc.info['pid']})")print(f"完整路径: {proc.info['exe']}")# 写入文件file.write(f"{'-' * 40}进程 {name:^20} 存在.{'-' * 40}\n")file.write(f"找到进程: {proc.info['name']} (PID: {proc.info['pid']})\n")file.write(f"完整路径: {proc.info['exe']}\n")# 获取版本信息version = get_version_info(proc.info['exe'])if version:print(f"版本信息: {version}")file.write(f"版本信息: {version}\n")print('-' * 112)print('\n')file.write('-' * 112 + '\n')      file.write('\n')return Trueprint(f"\n未找到进程 {name}.\n")file.write(f"\n未找到进程 {name}.\n")return False

网络检测

def check_network(host, port=80):"""检查网络连接是否正常。"""try:socket.create_connection((host, port), 2)return Trueexcept socket.error:return False

主函数


if __name__ == '__main__':output_file = open("检测结果.txt", "w", encoding="utf-8")try:        print("网络连接检测:")    out_ = check_network("www.baidu.com")in_ = check_network("192.168.xxx.xxx")print("外网访问:  ", "Success" if out_ else "Failed")print("内网访问:  ", "Success" if in_ else "Failed")output_file.write(f"网络连接检测:\n外网访问:  {'Success' if out_ else 'Failed'}\n"f"内网访问:  {'Success' if in_ else 'Failed'}\n\n")# 定义要检查的进程列表processes = ["*******e.exe",.....]for process_name in processes:find_process_by_name(process_name, output_file)print("检测完成,结果已写入检测结果.txt")finally:output_file.close()input("按任意键退出...")

运行结果

在这里插入图片描述

打包exe

!!!!!!!管理员打开powershell!!!!!!!

设置策略:set-executionpolicy remotesigned (选择y或者点击是)

查看策略:get-executionpolicy

创建虚拟环境:python -m venv my_env

切换到虚拟环境目录下:cd my_env\Scripts

激活环境:activate

查看py环境依赖:pip list (干干净净没有其他的依赖包)

安装py文件依赖:psutil、pywin32、pyinstaller

执行打包命令:pyinstaller --noconfirm .\gadget.py (带依赖目录,启动较快,但是要带个尾巴)

pyinstaller -F .\gadget.py (单独一个exe包,但是启动巨慢)

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

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

相关文章

C/C++樱花树代码

目录 写在前面 系列文章 C简介 完整代码 代码分析 写在后面 写在前面 C实现精美的樱花树,只需这100行代码! 系列文章 序号目录直达链接1爱心代码https://want595.blog.csdn.net/article/details/1363606842李峋同款跳动的爱心https://want595.b…

MySQL的高可用(MHA)

高可用模式下的故障切换,基于主从复制。 单点故障和主从复制不能切换的问题。 至少需要三台。 故障切换过程0-30秒 vip地址,根据vip地址所在的主机,确定主备。 主 vip 备 vip 主和备不是优先级确定的,主从复制的时候就确定…

通信原理-思科实验四:静态路由项配置实验

实验四 静态路由项配置实验 一:实验内容 二:实验目的 三、实验原理 四、实验步骤 选择三个2811型号的路由器 R1、R2、R3 路由器默认只有两个快速以太网接口,为路由器R1和R3增加快速以太网接口模块NM-1FE-TX,安装后检查路由器的接…

python使用rich.progress打印彩色进度条

常规的同步方法和for循环的进度,使用tqdm能很直观地展示进度;而一些异步协程或难以预估进度的,可以考虑使用rich.progress Ref: https://typer.tiangolo.com/tutorial/progressbar/#progress-bar 案例一:左侧展示旋转的小圈圈 …

设计模式SOLID原则

在Java编程中,SOLID原则是一组被广泛接受和应用的面向对象设计原则,旨在提高软件设计的灵活性、可维护性和可扩展性。这五个原则分别是: 1. 单一责任原则(Single Responsibility Principle, SRP) 定义:一…

机器学习(二十):偏差和方差问题

一、判断偏差和方差 以多项式回归为例,红点为训练集数据,绿点为交叉验证数据。 下图的模型,训练集误差大,交叉验证集误差大,这代表偏差很大 下图的模型,训练集误差小,交叉验证集误差小&#x…

等级保护 总结2

网络安全等级保护解决方案的主打产品: HiSec Insight安全态势感知系统、 FireHunter6000沙箱、 SecoManager安全控制器、 HiSecEngine USG系列防火墙和HiSecEngine AntiDDoS防御系统。 华为HiSec Insight安全态势感知系统是基于商用大数据平台FusionInsight的A…

外卖霸王餐系统架构怎么选?

在当今日益繁荣的外卖市场中,外卖霸王餐作为一种独特的营销策略,受到了众多商家的青睐。然而,要想成功实施外卖霸王餐活动,一个安全、稳定且高效的架构选择至关重要。本文将深入探讨外卖霸王餐架构的选择,以期为商家提…

AI绘画进阶工具 ComfyUI 新版来啦!操作界面详解!取消悬浮面板,自带工作流管理功能!(附安装包)

大家好,我是画画的小强 在 7 月初的一次更新中,ComfyUI 官方推出了 Beta 版 UI,取消了原本的悬浮面板,还新增了工作流管理功能,整体使用体验比之前好了很多。今天就为大家详细介绍一些新版 UI 的特点和用法。 一、启…

iOS中的MVVM设计模式

目录 前言 一、MVVM简介 二、MVVM的核心思想 三、MVVM的优势 四、MVVM在iOS中的实现 1. 创建Model 2. 创建ViewModel 3. 创建View 4. 主入口 总结 前言 随着iOS开发的发展,构建可维护和可扩展的代码架构变得至关重要。Model-View-ViewModel (MVVM) 是一种…

【STM32】超声波一般常用哪两个引脚?

在STM32单片机中,超声波模块HC-SR04通常使用PA6和PA7引脚进行驱动。 在STM32单片机上使用HC-SR04超声波模块时,常用的引脚是PA6和PA7。其中,PA6用于发送触发信号到Trig引脚,而PA7用于接收Echo引脚的回响信号。这两个引脚通过适当的…

pdf2image:将PDF文档转化为图像的Python魔法

标题:探索pdf2image:将PDF文档转化为图 像的Python魔法 背景 在数字时代,我们经常需要处理各种格式的文档,尤其是PDF文件。PDF以其跨平台的可读性和稳定性而广受欢迎。然而,有时我们需要将PDF文件转换成图像格式&am…

springboot3-web-questions-分析

系列文章目录 文章目录 目录 系列文章目录 文章目录 前言 一、问题案例 1、maven项目compile时候出现告警warn 2、java文件打包然后在命令行中运行java会找不到主类 3、程序找不到数据库驱动和配置实例 4、springboot和mybatis-plus版本不兼容导致 5、springboot项目启动的解释…

sklearn中的增量学习:特征提取的艺术

sklearn中的增量学习:特征提取的艺术 在机器学习领域,特征提取是构建有效模型的关键步骤。然而,并非所有数据集都适合一次性加载到内存中进行处理,尤其是在处理大规模数据集时。Scikit-learn(sklearn)提供…

21、Python之面向对象:一切皆对象,可你真的需要面向对象吗

引言 面向对象(Object-Oriented Programming, OOP)和面向过程(Procedural Programming)是两种不同的编程范式。不能因为我们接下来要进入“面向对象”的模块的学习,就武断地说,面向对象一定比面向过程好。…

若依 ruoyi poi Excel合并行的导入

本文仅针对文字相关的合并做了处理 ,图片合并及保存需要另做处理!! 目标:Excel合并行内容的导入 结果: 1. ExcelUtil.java 类,新增方法:判断是否是合并行 /*** 新增 合并行相关代码:…

【MySQL篇】Percona XtraBackup标准化全库完整备份策略(第三篇,总共五篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…

计网_数据通信基础知识

2024.07.05:计算机网络数据通信基础知识学习笔记 第2节 数据通信基础知识 2.1 物理层特性(学会区分)2.2 信道相关的基本概念2.2.1 数字信号的(基带调制)(1)不归零NRZ编码(2&#xff…

大模型日报 2024-07-25

大模型日报 2024-07-25 大模型资讯 Meta发布开源AI模型Llama 3.1 405B 摘要: Meta于周二宣布推出Llama 3.1 405B,这是一款大型语言模型,旨在与Anthropic、谷歌和OpenAI的顶级模型竞争。 Meta发布全球最大AI模型Llama 3.1 405B 摘要: Meta今日发布了其迄今…

在Typescript + Pinia 中使用 Actions

文件准备 type.ts import type { PiniaCustomProperties, StateTree, StoreDefinition, _GettersTree, _StoreWithGetters, _StoreWithState } from pinia; import type { UnwrapRef } from vue;/**构建 Actions */ type CreateActions<Id extends string, S extends StateT…