案例故事: 即時通訊(IM)軟體有很多,比如企業微信,釘釘,飛書,Skype, 微軟的Lync等, 這些軟體現在都很牛,還能監控誰誰在不在電腦旁工作,誰誰誰提前下班溜了。。。 一次偶然的機會,有個妹子請教我,她每天都想準時18點下班, 她問我如何做到: 假裝企業微信線上,併在2個小時後(20點)準時 ...
案例故事: 即時通訊(IM)軟體有很多,比如企業微信,釘釘,飛書,Skype, 微軟的Lync等,
這些軟體現在都很牛,還能監控誰誰在不在電腦旁工作,誰誰誰提前下班溜了。。。
一次偶然的機會,有個妹子請教我,她每天都想準時18點下班,
她問我如何做到: 假裝企業微信線上,併在2個小時後(20點)準時關機,
這樣她就能成功欺騙老闆,假裝自己一直在努力加班.....
準備階段
- 其實企業微信的是否線上,取決於是否你的電腦是否鍵盤或滑鼠事件持續進行。
- 經過測試,模擬鍵盤事假即可,用keyboard 模塊,需要pip install keyboard安裝
- 建議用scroll lock這個按鍵,因為這個按鍵單獨點擊,一般不會影響系統其它的程式運行, 除了打開的Excel表滾動會受影響!
- 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
也可關註“武散人”微信訂閱號,隨時接受文章推送。