监控打游戏、看视频等钓鱼活动后,还要监控农民工的离职倾向。近日,有网友表示,他们公司安装了行为感应系统,可以提前知道员工的跳槽意向。一时间,“打工人太难了”、“一点隐私都没有”的讨论层出不穷。有朋友问:这种监控技术可行吗?复杂吗?今天就带大家尝试用几行Python代码来监控电脑上的运行情况。监控键盘如果公司偷偷在我们的电脑上运行一个后台进程来监控我们的键盘事件,最简单的python写法大致是这样的:frompynputimportkeyboarddefon_press(key):print(f'{key}:pushed')defon_release(key):ifkey==keyboard.Key.esc:returnFalsewithkeyboard.Listener(on_press=on_press,on_release=on_release)aslsn:lsn.join()随意敲击键盘,你会在控制台看到这样的输出:代码内容是两个方法,一个是监听按键事件,一个是监听退出事件——按下ESC键松开退出。监控鼠标如果你想监控鼠标事件,那么只需使用这段代码:frompynputimportmousedefon_click(x,y,button,pressed):ifbutton==mouse.Button.left:print('leftwaspressed!')elifbutton==mouse。Button.right:print('rightwaspressed!')returnFalseelse:print('midwaspressed!')#定义鼠标监听线程withmouse.Listener(on_click=on_click)aslistener:listener.join()这段代码主要是监听左和右键单击鼠标操作,运行后操作鼠标,可以看到控制台打印了如下结果:如果细心,会发现每次点击事件都打印了两次。这是因为按下和释放都会触发鼠标事件。记录监听日志键盘事件和鼠标事件,是时候将两者结合起来,将用户的操作记录到日志中了。这里我们使用loguru模块来记录日志。整个代码如下:frompynputimportkeyboard,mousefromloguruiimportloggerfromthreadingimportThread#定义日志文件logger.add('moyu.log')defon_press(key):logger.debug(f'{key}:pushed')defon_release(key):ifkey==keyboard.Key.esc:returnFalse#定义键盘监听线程defpress_thread():withkeyboard.Listener(on_press=on_press,on_release=on_release)aslsn:lsn.join()defon_click(x,y,button,pressed):ifbutton==鼠标按钮。left:logger.debug('leftwaspressed!')elifbutton==mouse.Button.right:logger.debug('rightwaspressed!')else:returnFalse#定义鼠标监听线程defclick_thread():withmouse.Listener(on_click=on_click)aslistener:listener.join()if__name__=='__main__':#启动两个线程分别监听键盘和鼠标t1=Thread(target=press_thread())t2=Thread(target=click_thread())t1.start()t2.start()运行后,在同目录的日志文件中可以看到如下内容:总结本文主要使用python模块pynput来演示如何记录键盘鼠标操作。这些简单的代码行对于简单的输入监控是可行的,但是对于聊天记录这样的复杂语句,就需要使用NLTK语言对日志进行处理,才能还原你的聊天??记录。当然,我们这里只是讨论技术可行性,你千万不要做损害他人隐私的事情。况且单凭这段代码,别人一看就会发现有个程序记录操作……
