【脚本开发】脚本的启动与暂停

文章目录

  • 需求
  • 简单实现
      • 测试代码
  • 更新:添加两个方法

需求

基于pynput库开发一个脚本。

要能够用按键控制它启动,暂停。

简单实现

key参数,代表了用什么键控制。

state属性,代表了当前的开关状态。
listener属性,是pynput的监听器。

start方法,启动监听器。

from pynput import keyboard as kbclass Simple_Script():def __init__(self, key):self.key = keyself.state = Falseself.listener = kb.Listener(on_press=self.__a())def start(self):self.listener.start()def __a(self):def on_press(key):if key == self.key:self.state = not self.stateif self.state:print("启动", end="")else:print("暂停", end="")return on_press

测试代码

import time
from base.script import kb, Simple_Script
if __name__ == '__main__':a = Simple_Script(kb.Key.f12)a.start()i = 0while True:if a.state:print(i)i = i + 1time.sleep(1)

效果:

在这里插入图片描述

更新:添加两个方法

可以在启动,暂停时做一些事情。

from pynput import keyboard as kb
class Simple_Script():def __init__(self, key, fun1=None, fun2=None):self.key = keyself.state = Falseself.listener = kb.Listener(on_press=self.__a(fun1, fun2))def start(self):self.listener.start()def __a(self, fun1, fun2):def on_press(key):if key == self.key:self.state = not self.stateif self.state:print("启动", end="")if fun1 != None:fun1()else:print("暂停", end="")if fun2 != None:fun2()return on_press

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

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

相关文章

3.基础算法之搜索与图论

1.深度优先搜索 深度优先搜索(DFS,Depth First Search)是一种用于遍历或搜索树或图的算法。它将当前状态按照一定的规则顺序,先拓展一步得到一个新状态,再对这个新状态递归拓展下去。如果无法拓展,则退回…

STM32 通过Modbus协议更改内部Flash(模仿EEPROM)的运行参数

main.c测试 uint8_t uart1RxBuf[64]{0};uint8_t Adc1ConvEnd0; uint8_t Adc2ConvEnd0;int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initial…

【C语言刷题】——初识位操作符

【C语言刷题】——初识位操作符 位操作符介绍题一、 不创建临时变量(第三个变量),实现两个数的交换(1)法一(2)法二 题二、 求一个数存储在内存中的二进制中“一”的个数(1&#xff0…

【算法】Hash存储——开放寻址法

模拟散列表 维护一个集合,支持如下几种操作: I x,插入一个整数 x; Q x,询问整数 x是否在集合中出现过; 现在要进行 N次操作,对于每个询问操作输出对应的结果。 输入格式 第一行包含整数 N&am…

C++ 之LeetCode刷题记录(三十九)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 目标:执行用时击败90%以上使用 C 的用户。 22. 括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用…

国产软件不背黑锅:4款强大又实用的电脑软件,用了舍不得卸载

虽然一些国产软件常被误解为“流氓、付费、广告多”,但实际上,仍有许多小众却非常优质、良心的软件被大家所忽视。 1、电脑图像工具箱 这款电脑图像工具箱堪称图片处理的瑞士军刀,它完全免费且无任何广告干扰。这款工具箱集成了超过一百种工…

植物病害识别:YOLO水稻病害识别数据集(11000多张,yolo标注)

YOLO水稻病害识别数据集,包含叶斑病,褐斑病,细菌性枯萎病,东格鲁病毒病4个常见病害类别,共11000多张图像,yolo标注完整,可直接训练。 适用于CV项目,毕设,科研&#xff0c…

物联网在智慧城市建设中的关键作用:连接、感知、智能响应

一、引言 随着信息技术的飞速发展,物联网(IoT)技术已经渗透到我们生活的方方面面,特别是在智慧城市建设中发挥着至关重要的作用。智慧城市是指通过运用先进的信息和通信技术,实现城市基础设施、公共服务、交通管理、环…

SpringSecurity原理简述

文章目录 0. 简介1. 快速入门1.1 准备工作1.2 引入SpringSecurity 2. 认证2.1 登陆校验流程2.2 原理初探2.2.1 SpringSecurity完整流程2.2.2 认证流程详解 2.3 解决问题2.3.1 思路分析2.3.2 准备工作2.3.3 实现2.3.3.1 数据库校验用户准备工作核心代码实现 2.3.3.2 密码加密存储…

微信小程序onLoad加载定义好的函数

这里小程序开发中容易犯的错误-1 给客户做一个程序。需要在页面加载的时候在onLoad(options){}中加载定义好的函数,代码如下 onLoad(options) {get_week_()},运行时老报错 后来修改为正确的代码 onLoad(options) {this.get_week_()//必须加this},再尝试运行&#x…

项目管理工具及模板(甘特图、OKR周报、任务管理、头脑风暴等)

项目管理常用模板大全: 1. 项目组OKR周报 2. 项目组传统周报工作法 3. 项目甘特图 4. 团队名单 5. 招聘跟进表 6. 出勤统计 7. 年度工作日历 8. 项目工作年计划 9. 版本排期 10. 项目组任务管理 11. 项目规划模板 12. 产品分析报告 13. 头脑风暴 信息化项目建设全套…

uniapp开发DAPP钱包应用(一) 环境搭建 Vue+ MetaMask + ABI.json

上几节我们讲了如何通过Java后端完成链上交易、信息查询、以及如何使用web3插件实现开发自测。 这一节,我们来说说前端DAPP的开发实现。 1. MeteMask 🪜Java对接(BSC)币安链 | BNB与BEP20的开发实践(三)水…

做一下笔记 CXDB5CCAM-MK 与 CXDBCCAM-ML 的区别

1. CXDB5CCAM-MK 的简介 2. CXDBCCAM-ML 的简介 3. 这个两个器件的区别 最基本可见的区别是 : 传输速度的不同。 4. 资料在资源里面

Rust入门:Rust如何调用C静态库的函数

关于Rust调用C,因为接口比较复杂,貌似Rust不打算支持。而对于C函数,则相对支持较好。 如果要研究C/Rust相互关系的话,可以参考: https://docs.rs/cxx/latest/cxx/ Rust ❤️ C 这里只对调用C静态库做一个最简短的介…

uniapp 解决请求出现 /sockjs-node/info?t=问题

1. uniapp请求出现 /sockjs-node/info?t问题 1.1. 问题 uniapp项目老是出现 http://192.168.2.106:8080/sockjs-node/info?t1709704280949 1.1. sockjs-node介绍 sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全…

(golang)切片何时会创建新切片或影响原切片

什么时候切片操作会影响原切片 // 1.切片后没有触发slice的扩容机制时 什么时候对切片操作会创建新切片不影响原切片 // 2.对切片头元素进行截取的时候 // 3.当使用append时,len > cap则会触发扩容机制 前置: //slice结构体 type SliceHeader struct…

C++ 作业 24/3/11

1、提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数&#xff08;要求使用C风格字符串完成&#xff09; #include <iostream>using namespace std;int main() {string str;cout << "please enter str:&…

不会还有人判断字符是否为数字或字母还用Ascii吧

不会还有人判断字符是否为数字或字母还用Ascii吧 c > a && c < z) || (c > 0 && c < 9当然&#xff0c;也可也用&#xff0c;下面给大家分享几个方法快速判断。 Character.isLetter(ch) 判断ch是否为字母 Character.isDigit(ch) 判断ch是否为数字…

#onenet网络请求http(GET,POST)

参考博文&#xff1a; POST: https://blog.csdn.net/qq_43350239/article/details/104361153 POST请求&#xff08;用串口助手测试&#xff09;&#xff1a; POST /devices/1105985351/datapoints HTTP/1.1 api-key:AdbrV5kCRsKsRCfjboYOCVcF9FY Host:api.heclouds.com Con…

爬虫入门学习(三)请求headers处理

前言 有时候请求一个网页的时候&#xff0c;无论是GET请求还是POST请求都访问不了&#xff0c;并出现403错误。这是因为这些网页为了防止恶意采集信息&#xff0c;使用了反爬机制。 正文 1、都什么原因会出现403错误呢&#xff1f; 403错误是指访问被服务器拒绝的错误。这…