久久亚洲精品ab无码播放,久热这里只精品99国产bd999,久久天天躁夜夜狠狠综合

  • <object id="f5q2j"></object>
  • <code id="f5q2j"><small id="f5q2j"></small></code>

    <big id="f5q2j"></big>
    • 培訓機構
    • 培訓課程
    15907412407

    客服時間:9:00-18:00

    71愛課網   培訓資訊? Python   Python遠程控制(Python控制主機)

    Python遠程控制(Python控制主機)

    本文作者: python培訓學校 發布時間:2022-06-09 欄目分類:Python 瀏覽人數:70
    【導讀】:一、前言很多時候,我們都有遠程控制電腦的需求。

    python

    一、前言

    很多時候,我們都有遠程控制電腦的需求。比如正在下載某樣東西,需要讓電腦在下載完后關機?;蛘吣阈枰O控一個程序的運行狀況等。

    今天我們就來用Python實現一個遠程監控并控制電腦的小程序。

    二、實現原理

    聽起來遠程控制電腦好像很高級的樣子,但是實現起來其實非常簡單。實現原理如下:

    運行程序,讓程序不停地讀取郵件

    用手機給電腦發送郵件

    判斷是否讀取到指定主題的郵件,如果有,則獲取郵件內容

    根據郵件內容,執行預設的函數

    與其說是學習如何遠程控制電腦,還不如說是學習如何讀取郵件。當然,上面的的流程只實現了遠程控制電腦,而沒實現對電腦的監控。而監控的操作可以以截圖的方式來進行。

    我們可以預設一個指令,當讀取到郵件內容為grab時,我們就發送電腦截圖。如何將電腦截圖發送給手機郵箱,這樣就達到了監控的效果。

    關于如何發送郵件可以參考博客:如何用Python發送郵件?。這里就不再詳細說了。下面我們看看如何讀取郵件。

    三、讀取郵件

    讀取郵件需要使用到imbox模塊,安裝語句如下:

    pip?install?imbox

    讀取郵件的代碼如下:

    from?imbox?import?Imbox

    def?read_mail(username,?password):

    with?Imbox('imap.163.com',?username,?password,?ssl=True)?as?box:

    all_msg?=?box.messages(unread=True)

    for?uid,?message?in?all_msg:

    #?如果是手機端發來的遠程控制郵件

    if?message.subject?==?'Remote?Control':

    #?標記為已讀

    box.mark_seen(uid)

    return?message.body['plain'][0]

    首先我們用with語句,打開郵箱。然后通過下面語句獲取所有的未讀郵件:

    all_msg?=?box.messages(unread=True)

    獲取未讀郵件后,對郵件進行遍歷。將主題為“Reomte Control”的郵件標記為已讀,并返回文本內容。

    這里需要注意,因為我們篩選出了主題為“Remote Control”的郵件,因此我們在用手機發郵件的時候需要將主題設置為“Remote Control”,這樣可以避免其它郵件的干擾。

    四、截圖

    截圖需要使用到PIL模塊,安裝如下:

    pip?install?pillow

    截圖的代碼很簡單:

    from?PIL?import?ImageGrab

    def?grab(sender,?to):

    #?截取電腦全屏

    surface?=?ImageGrab.grab()

    #?將截屏保存為surface.jpg

    surface.save('surface.jpg')

    #?將截屏發送給手機

    send_mail(sender,?to,?['surface.jpg'])

    其中send_mail的代碼如下:

    import?yagmail

    def?send_mail(sender,?to,?contents):

    smtp?=?yagmail.SMTP(user=sender,?host='smtp.163.com')

    smtp.send(to,?subject='Remote?Control',?contents=contents)

    關于發送郵件的介紹可以參考上面提到的博客。

    五、關機

    關機的操作非常簡單,我們可以用python來執行命令行語句即可。代碼如下:

    import?os

    def?shutdown():

    #?關機

    os.system('shutdown?-s?-t?0')

    除了關機,我們還可以執行很多操作。對于一些復雜的操作,我們可以預編寫一些bat文件,這里就不演示了。

    六、完整代碼

    上面我們編寫了各個部分的代碼,然后再來看看主體部分的代碼:

    def?main():

    #?電腦用來發送郵件已經電腦讀取的郵箱

    username?=?'sockwz@163.com'

    password?=?'********'

    #?手機端的郵箱

    receiver?=?'2930777518@qq.com'

    #?讀取郵件的時間間隔

    time_space?=?5

    #?注冊賬戶

    yagmail.register(username,?password)

    #?循環讀取

    while?True:

    #?讀取未讀郵件

    msg?=?read_mail(username,?password)

    if?msg:

    #?根據不同的內容執行不同操作

    if?msg?==?'shutdown':

    shutdown()

    elif?msg?==?'grab':

    grab(username,?receiver)

    time.sleep(time_space)

    其中:

    yagmail.register(username,?password)

    會使用到keyring模塊,安裝如下:

    pip?install?keyring

    后面我們可以根據自己的需求編寫一些其它功能。下面是完整的代碼:

    import?os

    import?time

    import?yagmail

    from?imbox?import?Imbox

    from?PIL?import?ImageGrab

    def?send_mail(sender,?to,?contents):

    smtp?=?yagmail.SMTP(user=sender,?host='smtp.163.com')

    smtp.send(to,?subject='Remote?Control',?contents=contents)

    def?read_mail(username,?password):

    with?Imbox('imap.163.com',?username,?password,?ssl=True)?as?box:

    all_msg?=?box.messages(unread=True)

    for?uid,?message?in?all_msg:

    #?如果是手機端發來的遠程控制郵件

    if?message.subject?==?'Remote?Control':

    #?標記為已讀

    box.mark_seen(uid)

    return?message.body['plain'][0]

    def?shutdown():

    os.system('shutdown?-s?-t?0')

    def?grab(sender,?to):

    surface?=?ImageGrab.grab()

    surface.save('surface.jpg')

    send_mail(sender,?to,?['surface.jpg'])

    def?main():

    username?=?'sockwz@163.com'

    password?=?'你的授權碼'

    receiver?=?'2930777518@qq.com'

    time_space?=?5

    yagmail.register(username,?password)

    while?True:

    #?讀取未讀郵件

    msg?=?read_mail(username,?password)

    if?msg:

    if?msg?==?'shutdown':

    shutdown()

    elif?msg?==?'grab':

    grab(username,?receiver)

    time.sleep(time_space)

    if?__name__?==?'__main__':

    main()

    - END -本文為轉載分享&推薦閱讀,若侵權請聯系后臺刪除

    免責聲明:

    一、71愛課網旨在免費為用戶傳遞信息,不代表本站的觀點和立場;

    二、71愛課網僅提供信息發布平臺,對于本文版權歸屬問題本站無法判斷和調查;

    三、本文整理于會員新聞,如果侵犯您的版權,請聯系管理員刪除或增加版權信息(QQ:981561103)。

    推薦課程

    免費預約試聽

    只要一個電話
    我們免費為您回電


    廣告
    久久亚洲精品ab无码播放,久热这里只精品99国产bd999,久久天天躁夜夜狠狠综合