案例故事: 即时通讯(IM)软件有很多,比如企业微信,钉钉,飞书,Skype, 微软的Lync等,
这些软件现在都很牛,还能监控谁谁在不在电脑旁工作,谁谁谁提前下班溜了。。。
《自拍教程74》Python 假装企业微信电脑在线并定时关机, 骗老板的好方法! Python 第1张

一次偶然的机会,有个妹子请教我,她每天都想准时18点下班,
她问我如何做到: 假装企业微信在线,并在2个小时后(20点)准时关机,
这样她就能成功欺骗老板,假装自己一直在努力加班.....

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
准备阶段
  1. 其实企业微信的是否在线,取决于是否你的电脑是否键盘或鼠标事件持续进行。
  2. 经过测试,模拟键盘事假即可,用keyboard 模块,需要pip install keyboard安装
  3. 建议用scroll lock这个按键,因为这个按键单独点击,一般不会影响系统其它的程序运行, 除了打开的Excel表滚动会受影响!
  4. Windows系统的立马关机命令是:shutdown /s /t 0

Python批处理脚本形式

记住批处理脚本的精髓:批量顺序执行语句

import os
import time
import keyboard

TIMEOUT = 7200  # 2小时(7200s)常量
once_time = time.time()  # 获取当前时间戳,并保存到一个变量

# 循环获取当前时间,与once_time变量做时间戳做减法
while time.time() - once_time <= TIMEOUT:
    print("Pressed the scroll lock key")
    keyboard.press_and_release("scroll lock")  # 按下“scroll lock" 键
    time.sleep(5)  # 每5秒间隔一次

os.system("shutdown /s /t 0")  # 立马关机

Python面向过程函数形式

这么简单的程序,用批处理脚本形式即可
如果非要搞成函数形式,培养培养编程思维,也未尝不可!

import os
import time
import keyboard


def input_keyevent(key, timeout):
    once_time = time.time()  # 获取当前时间戳,并保存到一个变量

    # 循环获取当前时间,与once_time变量做时间戳做减法
    while time.time() - once_time <= timeout:
        print("Pressed the %s key" % key)
        keyboard.press_and_release(key)  # 按下某个键
        time.sleep(5)  # 每5秒间隔一次


def shutdown_now():
    os.system("shutdown /s /t 0")  # 立马关机


# 第一步,执行2个小时的按键事件
input_keyevent("scroll lock", 7200)

# 第二步, 立马关机
shutdown_now()

Python面向对象类形式

这么简单的程序,用批处理脚本形式即可
如果非要搞成类形式,培养培养编程思维,也未尝不可!

import os
import time
import keyboard


class KeyEventInputter(object):
    def __init__(self, key):
        self.key = key
        self.once_time = time.time()  # 临时取一次时间

    def input_keyevnet(self, timeout):
        # 循环获取当前时间,与once_time变量做时间戳做减法
        while time.time() - self.once_time <= timeout:
            print("Pressed the %s key" % self.key)
            keyboard.press_and_release(self.key)  # 按下某个键
            time.sleep(5)  # 每5秒间隔一次


if __name__ == '__main__':
    # 第一步,新建一个键盘事件输入器的对象,执行2个小时的按键事件
    k_obj = KeyEventInputter("scroll lock")
    k_obj.input_keyevnet(7200)

    # 第二步,执行2个小时的按键事件
    os.system("shutdown /s /t 0")  # 立马关机

运行方式

以上代码可以直接运行,比如保存为keep_active.py并放在桌面,
建议python keep_active.py运行,当然也可以双击运行。

小提示:import keyboard
print(keyboard.read_key()) # 可以获取到键的具体名称,比如我按下ScrLK按键,则打印:scroll lock
keyboard.press("scroll lock") 函数和 keyboard.press_and_release("scroll lock")函数是不同的。
前者是一直按住某个键,后者是按一次然后放开,所以本案例用后者函数。


小提示: 我自知这种行为是不对的,我只是站在通过Python技术来实现解决日常工作碰到的问题的角度,才写的这篇文章,
我其实更提倡更有正能量的东西, 这种行为,不能忍, 因为我也是一个老板!!!


更多更好的原创文章,请访问官方网站:www.zipython.com
自拍教程(自动化测试Python教程,武散人编著)
原文链接:https://www.zipython.com/#/detail?id=503fb4feb1b74859b6cfdcb5408cef95
也可关注“武散人”微信订阅号,随时接受文章推送。
《自拍教程74》Python 假装企业微信电脑在线并定时关机, 骗老板的好方法! Python 第2张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄