ดูหน้าจอในหน่วยงานด้วย python capture screen

 เคยรึป่าวครับที่หัวหน้าแผนกอื่นเดินมาถามว่า ลูกน้องตัวเองมัวแต่เล่นเกม แต่จับผิดไม่ได้สักที (คงแค่อยากเตือนนั่นล่ะ) วันนี้ผมขอเสนอ pyautogui ทาาาาด๊าาาาาาา


แนวคิด

  1. ให้ Task Scheduler ทำงานตามเวลาที่กำหนด
  2. ส่วนใน python ก็มีหน้าที่ screen capture แล้ว post data ไปที่เว็บเซิฟเวอร์ในองค์กรของเรา 
  3. เราหรือหัวหน้าหน่วยก็เปิดดูตาม url ที่สร้างไว้

ตัวอย่าง Code

import pyautogui 
import os 
import requests
import socket

computername = os.environ['COMPUTERNAME']
dirPath = os.path.dirname(os.path.realpath(__file__))

testIp = socket.gethostbyname(socket.gethostname())

fullNamePath = dirPath+'/'+testIp+'_'+computername+'.png'
im2 = pyautogui.screenshot(fullNamePath)

url = 'http://127.0.0.1/screen/save.php'
files = {'media': open(fullName, 'rb')}
data = requests.post(url, files=files)


ข้อมูลในตัวอย่างนี้ fullNamePath ก็จะเป็นชื่อเครื่อง(ก็น่าจะเป็นหลักฐานเพียงพอแล้ว) แล้วก็มีไอพีเสริมเข้าไปอีก ถ้าอยากได้ข้อมูลอื่นๆ ก็สามารถใส่เพิ่มเติมเข้าไปได้ จากนั้นก็เซฟเป็น .png แล้วค่อยส่ง requests.post ไปตามนั้น


ฝั่งเซิฟเวอร์ในตัวอย่างนี้เป็น php ก็จะรับค่ามาเป็น $file = $_FILES['media']; จากนั้นจะเอาไปทำอะไรต่อก็ตามใจเราเลยจ้า ส่วนการแปลง.py เป็น .exe ก็ตามลิ้งด้านล่าง


รูปตัวอย่างเฉยๆ

จากนั้นเราก็มาเซ็ตใน Task Scheduler ในแท็บ Action ตรง Program/script ตรงนี้ก็เลือกเป็น .exe ที่เราได้สร้างขึ้นมา เป็นอันเสร็จเรียบร้อย


Ref.

  1. Welcome to PyAutoGUI’s documentation! — PyAutoGUI documentation
  2. แปลงไฟล์ Python เป็น EXE ง่ายๆ

Comments