파이톤은 휴대전화로 원격 제어 컴퓨터를 실현한다
많은 경우에 우리는 모두 원격 제어 컴퓨터의 수요를 가지고 있다.예를 들어 어떤 물건을 다운로드하고 있으면 컴퓨터를 다운로드한 후에 꺼야 한다.프로그램의 운행 상황을 감시해야 하거나
오늘 우리는 파이톤으로 컴퓨터를 원격 감시하고 제어하는 작은 프로그램을 실현할 것이다.
2. 실현 원리
원격 제어 컴퓨터가 고급스러운 것처럼 들리지만 실현하기는 사실 매우 간단하다.실현 원리는 다음과 같다.
우리는 메일 내용이grab인 것을 읽을 때 컴퓨터 캡처를 보낼 수 있는 명령을 설정할 수 있다.컴퓨터 캡처를 어떻게 휴대전화 메일박스에 보내면 감시 효과가 나타난다.
어떻게 메일을 보내는지에 관해서는 블로그를 참고할 수 있습니다: 어떻게 Python으로 메일을 보냅니까?여기서는 더 이상 상세하게 말하지 않겠다.다음은 우편물을 어떻게 읽는지 봅시다.
3. 메일 읽기
메일을 읽으려면 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]
우선 위드 문구로 메일박스를 엽니다.그리고 다음 문장을 통해 읽지 않은 모든 메일을 가져옵니다.
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'])
그중sendmail 코드는 다음과 같습니다.
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)
메일 발송에 대한 소개는 위에서 언급한 블로그를 참고할 수 있다.
5. 전원 끄기
컴퓨터를 끄는 작업은 매우 간단합니다. 우리는python으로 명령행 문장을 실행할 수 있습니다.코드는 다음과 같습니다.
import os
def shutdown():
#
os.system('shutdown -s -t 0')
컴퓨터를 끄는 것 외에 우리는 많은 조작을 수행할 수 있다.몇몇 복잡한 조작에 대해 우리는 일부bat 파일을 미리 편집할 수 있는데, 여기서는 설명하지 않겠다.
6. 전체 코드
위에서 우리는 각 부분의 코드를 작성한 다음에 주체 부분의 코드를 다시 보았다.
def main():
#
username = '[email protected]'
password = '********'
#
receiver = '[email protected]'
#
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)
우리는 자신의 요구에 따라 기타 기능을 작성할 수 있다.다음은 전체 코드입니다.
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 = '[email protected]'
password = ' '
receiver = '[email protected]'
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()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.