久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 如何讓Python實現(xiàn)遠(yuǎn)程控制電腦

如何讓Python實現(xiàn)遠(yuǎn)程控制電腦

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-07 03:07:32 1699297652

一、前言

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

今天我們就來用Python實現(xiàn)一個遠(yuǎn)程監(jiān)控并控制電腦的小程序。

二、實現(xiàn)原理

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

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

2.用手機給電腦發(fā)送郵件。

3.判斷是否讀取到指定主題的郵件,如果有,則獲取郵件內(nèi)容。

4.根據(jù)郵件內(nèi)容,執(zhí)行預(yù)設(shè)的函數(shù)。

與其說是學(xué)習(xí)如何遠(yuǎn)程控制電腦,還不如說是學(xué)習(xí)如何讀取郵件。當(dāng)然,上面的的流程只實現(xiàn)了遠(yuǎn)程控制電腦,而沒實現(xiàn)對電腦的監(jiān)控。而監(jiān)控的操作可以以截圖的方式來進(jìn)行。

我們可以預(yù)設(shè)一個指令,當(dāng)讀取到郵件內(nèi)容為grab時,我們就發(fā)送電腦截圖。如何將電腦截圖發(fā)送給手機郵箱,這樣就達(dá)到了監(jiān)控的效果。

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

三、讀取郵件

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

pipinstallimbox

讀取郵件的代碼如下:

fromimboximportImbox

defread_mail(username,password):

withImbox('imap.163.com',username,password,ssl=True)asbox:

all_msg=box.messages(unread=True)

foruid,messageinall_msg:

#如果是手機端發(fā)來的遠(yuǎn)程控制郵件

ifmessage.subject=='RemoteControl':

#標(biāo)記為已讀

box.mark_seen(uid)

returnmessage.body['plain'][0]

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

all_msg=box.messages(unread=True)

獲取未讀郵件后,對郵件進(jìn)行遍歷。將主題為“ReomteControl”的郵件標(biāo)記為已讀,并返回文本內(nèi)容。

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

四、截圖

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

pipinstallpillow

截圖的代碼很簡單:

fromPILimportImageGrab

defgrab(sender,to):

#截取電腦全屏

surface=ImageGrab.grab()

#將截屏保存為surface.jpg

surface.save('surface.jpg')

#將截屏發(fā)送給手機

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

其中send_mail的代碼如下:

importyagmail

defsend_mail(sender,to,contents):

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

smtp.send(to,subject='RemoteControl',contents=contents)

關(guān)于發(fā)送郵件的介紹可以參考上面提到的博客。

五、關(guān)機

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

importos

defshutdown():

#關(guān)機

os.system('shutdown-s-t0')

除了關(guān)機,我們還可以執(zhí)行很多操作。對于一些復(fù)雜的操作,我們可以預(yù)編寫一些bat文件,這里就不演示了。

六、完整代碼

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

defmain():

#電腦用來發(fā)送郵件已經(jīng)電腦讀取的郵箱

username='sockwz@163.com'

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

#手機端的郵箱

receiver='2930777518@qq.com'

#讀取郵件的時間間隔

time_space=5

#注冊賬戶

yagmail.register(username,password)

#循環(huán)讀取

whileTrue:

#讀取未讀郵件

msg=read_mail(username,password)

ifmsg:

#根據(jù)不同的內(nèi)容執(zhí)行不同操作

ifmsg=='shutdown':

shutdown()

elifmsg=='grab':

grab(username,receiver)

time.sleep(time_space)

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

importos

importtime

importyagmail

fromimboximportImbox

fromPILimportImageGrab

defsend_mail(sender,to,contents):

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

smtp.send(to,subject='RemoteControl',contents=contents)

defread_mail(username,password):

withImbox('imap.163.com',username,password,ssl=True)asbox:

all_msg=box.messages(unread=True)

foruid,messageinall_msg:

#如果是手機端發(fā)來的遠(yuǎn)程控制郵件

ifmessage.subject=='RemoteControl':

#標(biāo)記為已讀

box.mark_seen(uid)

returnmessage.body['plain'][0]

defshutdown():

os.system('shutdown-s-t0')

defgrab(sender,to):

surface=ImageGrab.grab()

surface.save('surface.jpg')

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

defmain():

username='sockwz@163.com'

password='你的授權(quán)碼'

receiver='2930777518@qq.com'

time_space=5

yagmail.register(username,password)

whileTrue:

#讀取未讀郵件

msg=read_mail(username,password)

ifmsg:

ifmsg=='shutdown':

shutdown()

elifmsg=='grab':

grab(username,receiver)

time.sleep(time_space)

if__name__=='__main__':

main()

以上內(nèi)容為大家介紹了如何讓Python實現(xiàn)遠(yuǎn)程控制電腦,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。http://m.2667701.com/

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT