NJUPT 程序设计周

作者: Du1in9 | 来源:发表于2022-11-04 10:52 被阅读0次



备案一

  • Keylogger.py
import sys
import os
import demo
from PyQt5.QtWidgets import QApplication, QMainWindow


def demo1():
    os.system("python test1.py")


def demo2():
    os.system("python test2.py")


def demo3():
    os.system("python test3.py")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = demo.Ui_Dialog()
    ui.setupUi(MainWindow)
    MainWindow.show()
    ui.button1.clicked.connect(demo1)
    ui.button2.clicked.connect(demo2)
    ui.button3.clicked.connect(demo3)
    sys.exit(app.exec_())
  • demo.py
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'demo.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(427, 212)
        self.button1 = QtWidgets.QPushButton(Dialog)
        self.button1.setGeometry(QtCore.QRect(50, 30, 93, 161))
        self.button1.setObjectName("button1")
        self.button2 = QtWidgets.QPushButton(Dialog)
        self.button2.setGeometry(QtCore.QRect(170, 30, 93, 161))
        self.button2.setObjectName("button2")
        self.button3 = QtWidgets.QPushButton(Dialog)
        self.button3.setGeometry(QtCore.QRect(290, 30, 93, 161))
        self.button3.setObjectName("button3")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.button1.setText(_translate("Dialog", "键盘监听"))
        self.button2.setText(_translate("Dialog", "鼠标连击"))
        self.button3.setText(_translate("Dialog", "截图控制"))
  • test1.py
from pynput.keyboard import Controller, Listener

# 1、键盘监听

keyboard = Controller()
keys = []


def on_press(key):
    string = str(key).replace("'", "")


def on_release(key):
    global keys
    string = str(key).replace("'", "")
    keys.append('\r' + string)
    main_string = "".join(keys)
    print(main_string)
    if len(main_string) > 15:
        with open('output.txt', 'a') as f:
            f.write(main_string)
            keys = []


with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()
  • test2.py
import pyautogui
import keyboard


# 2、鼠标连点

for i in range(5):
    if keyboard.wait(hotkey='ctrl+alt') is None:
        x, y = pyautogui.position()
        for i in range(50):
            pyautogui.click(x, y)

  • test3.py
import keyboard  
import pyautogui as pag 
from PIL import ImageGrab 

# 3、屏幕截图

if keyboard.wait(hotkey='ctrl+alt') is None:
    x1, y1 = pag.position()
    if keyboard.wait(hotkey='ctrl+alt') is None:
        x2, y2 = pag.position()
        image = ImageGrab.grab((x1, y1, x2, y2))
        image.save("screen.png")

演示视频:https://wwb.lanzouv.com/iZlWD0eja2ri

备案二

  • main.py
import sys
import os
import demo
import pyWinhook
import pythoncom
from PyQt5.QtWidgets import QApplication, QMainWindow

class KeyBoardManager():
    keyIsPressed = False

    def onKeyDown(self, event):
        if self.keyIsPressed:
            return True
        print(str(event.Key) + ' is pressed')
        self.keyIsPressed = True
        return True

    def onKeyUp(self, event):
        self.keyIsPressed = False
        print(str(event.Key) + ' is released')
        return True


def begin():
    mykbmanager = KeyBoardManager()
    hookmanager = pyWinhook.HookManager()
    hookmanager.KeyDown = mykbmanager.onKeyDown
    hookmanager.KeyUp = mykbmanager.onKeyUp
    hookmanager.HookKeyboard()
    pythoncom.PumpMessages()


def over():
    os.system("start.bat")
    exit()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = demo.Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    ui.pushButton.clicked.connect(begin)
    ui.pushButton_2.clicked.connect(over)
    sys.exit(app.exec_())
  • demo.py
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'demo.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(777, 492)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(80, 30, 281, 141))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(400, 30, 281, 141))
        self.pushButton_2.setObjectName("pushButton_2")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(330, 200, 131, 21))
        self.label.setObjectName("label")
        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(83, 246, 601, 161))
        self.textEdit.setObjectName("textEdit")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 777, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Keyboard Monitoring(ON)"))
        self.pushButton_2.setText(_translate("MainWindow", "Keyboard Monitoring(OFF)"))
        self.label.setText(_translate("MainWindow", "DEMO ZOOM"))

  • start.bat
C:
cd C:\Users\YYDL\Desktop\python\demo
start python main.py
exit

演示视频:https://wwb.lanzouv.com/iyfbC0f67t2f

相关文章

  • NJUPT 程序设计周

    A3_众数问题 众数问题_B19030825.cpp 程序调试过程中的问题 问题1:最开始想的是用链表结点存储数组...

  • NJUPT 程序设计周

    备案一 Keylogger.py demo.py test1.py test2.py test3.py 演示视频:...

  • NJUPT《JAVA程序设计》

    1/3 课堂练习 第一次作业第二次作业第三次作业第四次作业第五次作业第六次作业 设计图第六次作业_代码图第七次作业...

  • Writeup1.EasyOverrideVariable1

    Question1: NJUPT-CGCTF-Whendidyouborn? Analysis1.0: Glanc...

  • NJUPT【 面向对象程序设计及C++ 】

    Part 1/6 考试范围 第1章面向对象的三大特征,类和对象,程序开发过程第2章cin、cout,::,全局变量...

  • 验证码识别程序设计流程

    以南邮正方教务系统为例 找到验证码图片的链接 "http://jwxt.njupt.edu.cnCheckCode...

  • 字符串比较

    图片来源moocC语言程序设计进阶-第一周测试

  • NJUPT《 大学英语 Ⅲ 》

    一、考试说明 ① 听力:短新闻、长对话、短文听力,35分;② 词汇选择,共20题,10分;(前四个单元词汇)③ 阅...

  • NJUPT【 数学实验 】

    考试说明 ① 在线考试(50%)② 实验报告(50%) Part1 实验报告 Part2 命令总结 求两个正整数的...

  • NJUPT《 大学英语 》

    《 大学英语 Ⅰ 》 Unit 1 Growing Up Text A:Writing for Myself of...

网友评论

    本文标题:NJUPT 程序设计周

    本文链接:https://www.haomeiwen.com/subject/jffozrtx.html