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

娱乐网站设计与实现昆山高端网站建设公司

娱乐网站设计与实现,昆山高端网站建设公司,湘潭平台公司,阳江公司网站建设最新内容在我的另一个博客:Mac监控键盘输入并执行动作 背景 电脑的安全是非常重要的,特别是里面的敏感数据,若是被有心之人利用,那后果不堪设想。 所以我们部门定下了一个规矩,谁离开工位要是不锁屏,就可以…

最新内容在我的另一个博客:Mac监控键盘输入并执行动作




背景

电脑的安全是非常重要的,特别是里面的敏感数据,若是被有心之人利用,那后果不堪设想。
所以我们部门定下了一个规矩,谁离开工位要是不锁屏,就可以在部门群发送一个消息:我请大家吃鸡翅。

oh,技术出身怎么可以让这种事情发生。

简介

最新代码我放到了这里:https://github.com/GuoFlight/ListenKey ,欢迎Star与交流。

代码逻辑是,监听到指定的字符串就会「执行动作」。

代码实现

执行环境:Mac+Python3.(Windows也可,但要修改小部分代码)
仓库中我还实现了启停脚本control.sh。这里只介绍主要逻辑。
将以下代码后台执行,当键盘输入"jichi", “qingdajia”, “dajia”, "weizheng"这些字符串时,Mac就会锁屏。

#!/usr/bin/python3
from pynput.keyboard import Listener
import os
import time
import signal
from multiprocessing import Pool#####################################
# 程序作用:监听键盘,若输入了指定的字符串,则执行相应的动作
# 作者:京城郭少
#####################################class ListenKey:def __init__(self, listenStr="", actionFunc=None):self.listenStr = listenStrself.actionFunc = actionFuncself.index = 0def on_press(self, key):# print("监听到了",key)  # DEBUGif self.listenStr == "" or self.actionFunc == None:returnpressKey = Nonetry:pressKey = key.charexcept AttributeError:pressKey = keyif pressKey == self.listenStr[self.index]:# print("本次按键符合条件")  # DEBUGif self.index == len(self.listenStr) - 1:self.index = 0self.actionFunc()now = time.strftime("%Y-%m-%d  %H:%M:%S", time.localtime())print("【%s】执行动作" % (now),flush=True)  # DEBUGelse:self.index = (self.index + 1) % (len(self.listenStr))else:self.index = 0def on_release(self, key):returndef start_listen(self):# print("开始监听")       #DEBUGwith Listener(on_press=self.on_press, on_release=self.on_release) as listener:listener.join()#指定动作
def actionFunc():#os.system("shutdown -s now")os.system("osascript -e 'tell application \"System Events\" to key code 12 using {control down,command down}'")#print("hello",flush=True)#处理信号
def handle_exit(sig, stack_frame):print('eixt',flush=True)p.terminate()exit(0)if __name__ == '__main__':keywords = ["jichi", "qingdajia", "dajia", "weizheng"]signal.signal(signal.SIGINT, handle_exit)signal.signal(signal.SIGQUIT, handle_exit)signal.signal(signal.SIGTERM, handle_exit)# signal.signal(signal.SIGKILL, handle_exit)listenKey = []p = Pool(6)  # 最多同时执行6个进程for i in keywords:listenKey.append(ListenKey(i, actionFunc))for i in listenKey:p.apply_async(i.start_listen)  # 在进程池中添加进程p.close()p.join()  # 等待子进程结束再往下执行

京城郭少


http://www.yayakq.cn/news/585805/

相关文章:

  • 微信小程序注册后怎么登录免费seo技术教程视频
  • 上海企业网站推广临淄佰渡信息网
  • 成都最好的网站推广优化公司软件开发用的软件
  • 如何用自己网站做大电商企业网站做口碑营销
  • 哈尔滨大型网站制作开发wordpress留言页面模版
  • 中山手机网站制作多少钱广州音乐制作公司
  • 进口外贸流程中山网站建设seo优化营销制作设计
  • 劳动保障局瓯海劳务市场和做网站建一个网站容易吗
  • 免费网站建设制作视频网站建设的格式
  • 室内设计网站平面案例市场营销策略有哪些
  • 官方网站建设 磐石网络知名优化工具 wordpress
  • 高校学风建设网站建设电子商务网站的意义
  • 水果配送网站建设直播app软件开发
  • 朔州网站设计公司深圳龙华邮政编码是多少
  • mil后缀网站企业网站建设的参考文献
  • 打开网站说建设中是什么问题太原网站建设最好
  • 网站多少个关键词网页代码大全详解
  • 外贸询盘网站网站建设快速便宜
  • 网站公司维护藁城手机网站建设
  • seo站百度高级搜索页面
  • 织梦零基础做网站网络信息安全公司
  • 乐山网站建设沈阳网站设计外包
  • 建设企业网站地址成都线上超市有哪些平台
  • python网站入口哪个网站是专门做装修的
  • 外贸网站推广 上海微信小程序自助建站
  • 网站推广常用方法有哪些哪个厂家的logo品牌设计
  • 上海松江区做网站的公司dede分类信息网站
  • 移动网站开发书籍注册什么公司给别人做网站
  • 合肥网站开发建设建基建设集团网站
  • 广州快速建站哪家服务专业南京网站设计制作排名