<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用 Python 寫摸魚監(jiān)控進(jìn)程,用這個(gè)!

          共 2363字,需瀏覽 5分鐘

           ·

          2022-02-20 10:28

          789b222dce1a94a47505877b0c76ebd2.webp

          文 |?閑歡

          來源:Python 技術(shù)「ID: pythonall」

          2996597299e0de43552bfe9a98022b71.webp

          繼打游戲、看視頻等摸魚行為被監(jiān)控后,現(xiàn)在打工人離職的傾向也會(huì)被監(jiān)控。

          有網(wǎng)友爆料稱知乎正在低調(diào)裁員,視頻相關(guān)部門幾乎要裁掉一半。而在知乎裁員的討論區(qū),有網(wǎng)友表示企業(yè)安裝了行為感知系統(tǒng),該系統(tǒng)可以提前獲知員工跳槽念頭。

          而知乎在否認(rèn)了裁員計(jì)劃的同時(shí),也聲明從未安裝使用過網(wǎng)上所說的行為感知系統(tǒng),今后也不會(huì)啟用類似軟件工具。

          因?yàn)榇耸拢钚欧煌粕巷L(fēng)口浪尖,輿論關(guān)注度越來越高。

          一時(shí)間,“打工人太難了”“毫無隱私可言”的討論層出不窮。

          今天就帶大家領(lǐng)略一下怎么寫幾行 Python 代碼,就能監(jiān)控電腦。

          監(jiān)控鍵盤

          如果公司偷偷在我們的電腦上運(yùn)行了一個(gè)后臺(tái)進(jìn)程,來監(jiān)控我們的鍵盤事件,最簡單的 python 寫法大致是這樣的:

          from?pynput?import?keyboard

          def?on_press(key):
          ????print(f'{key}?:pushed')


          def?on_release(key):
          ????if?key?==?keyboard.Key.esc:
          ????????return?False


          with?keyboard.Listener(on_press=on_press,?on_release=on_release)?as?lsn:
          ????lsn.join()

          隨意敲擊鍵盤,你就會(huì)從控制臺(tái)看到這樣的輸出:

          ed4007476d70e81094c833a677c6970c.webp

          代碼內(nèi)容就是兩個(gè)方法,一個(gè)是監(jiān)聽按鍵事件,另一個(gè)是監(jiān)聽退出事件——敲擊 ESC 按鍵后釋放就退出了。

          監(jiān)控鼠標(biāo)

          如果還要監(jiān)聽鼠標(biāo)事件,那么上這段代碼就行了:

          from?pynput?import?mouse

          def?on_click(x,?y,?button,?pressed):
          ????if?button?==?mouse.Button.left:
          ????????print('left?was?pressed!')
          ????elif?button?==?mouse.Button.right:
          ????????print('right?was?pressed!')
          ????????return?False
          ????else:
          ????????print('mid?was?pressed!')


          #?定義鼠標(biāo)監(jiān)聽線程
          with?mouse.Listener(on_click=on_click)?as?listener:
          ????listener.join()

          這段代碼主要是監(jiān)聽鼠標(biāo)的左右鍵點(diǎn)擊操作,運(yùn)行之后操作鼠標(biāo),就可以看到控制臺(tái)打印如下結(jié)果:

          bbd79f9b0a308296457de560c6126c3d.webp

          細(xì)心的你一定會(huì)發(fā)現(xiàn),每次點(diǎn)擊事件,都打印了兩次。這是因?yàn)榘聪潞退砷_都會(huì)觸發(fā)鼠標(biāo)事件。

          記錄監(jiān)控日志

          鍵盤事件和鼠標(biāo)事件都有了,是時(shí)候?qū)⒍呓Y(jié)合起來,把用戶的操作記錄到日志了。這里我們用 loguru 來記錄日志,這個(gè) python 模塊我們之前的文章也講過。

          整個(gè)代碼如下:

          from?pynput?import?keyboard,?mouse
          from?loguru?import?logger
          from?threading?import?Thread

          #?定義日志文件
          logger.add('moyu.log')


          def?on_press(key):
          ????logger.debug(f'{key}?:pushed')


          def?on_release(key):
          ????if?key?==?keyboard.Key.esc:
          ????????return?False


          #?定義鍵盤監(jiān)聽線程
          def?press_thread():
          ????with?keyboard.Listener(on_press=on_press,?on_release=on_release)?as?lsn:
          ????????lsn.join()


          def?on_click(x,?y,?button,?pressed):
          ????if?button?==?mouse.Button.left:
          ????????logger.debug('left?was?pressed!')
          ????elif?button?==?mouse.Button.right:
          ????????logger.debug('right?was?pressed!')
          ????else:
          ????????return?False


          #?定義鼠標(biāo)監(jiān)聽線程
          def?click_thread():
          ????with?mouse.Listener(on_click=on_click)?as?listener:
          ????????listener.join()


          if?__name__?==?'__main__':
          ????#?起兩個(gè)線程分別監(jiān)控鍵盤和鼠標(biāo)
          ????t1?=?Thread(target=press_thread())
          ????t2?=?Thread(target=click_thread())
          ????t1.start()
          ????t2.start()

          運(yùn)行之后,你就可以在同級目錄下的日志文件中,看到這樣的內(nèi)容了:

          6ff8ada5a7710e207613b3d7fd5c8573.webp

          總結(jié)

          本文主要通過 pynput 這個(gè) python 模塊講解一下怎么記錄鍵盤和鼠標(biāo)的操作。這幾行簡單的代碼對于監(jiān)控輸入密碼之類的簡單操作可以使用,但是對于聊天記錄之類的復(fù)雜語句,你還需要針對日志用 NLTK 語言處理,才能復(fù)原你的聊天記錄。

          學(xué)會(huì)了這個(gè),你最想做的事情是什么?歡迎評論區(qū)留言!

          PS公號(hào)內(nèi)回復(fù)「Python」即可進(jìn)入Python 新手學(xué)習(xí)交流群,一起 100 天計(jì)劃!


          老規(guī)矩,兄弟們還記得么,右下角的 “在看” 點(diǎn)一下,如果感覺文章內(nèi)容不錯(cuò)的話,記得分享朋友圈讓更多的人知道!

          391347d68b8c92bb548cf7f356d3f7fe.webp

          代碼獲取方式

          識(shí)別文末二維碼,回復(fù):閑歡




          瀏覽 47
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  香蕉成人在线视频 | 午夜精品尤物福利视频 | 亚洲欧美在线成人 | A片麻豆 C逼毛片 | 在线波多野结衣 |