python win7 win10_用python在win7上实现win10的动态锁(GUI)篇

上一篇的GUI版本,使用PyQt5和PyInstaller

1.废话少说,直接上码

from PyQt5.QtCore import *

from PyQt5.QtWidgets import *

from PyQt5.QtGui import *

import time

from bluetooth import *

from ctypes import *

import sys

import bluetooth

import base64

import sys

class lock(QMainWindow):

file_changed_signal = pyqtSignal(str) # 信号类型:str

def __init__(self, parent=None):

super().__init__(parent)

self.setWindowTitle('蓝牙动态锁')

self.setWindowIcon(QIcon('bluelock.ico'))

self.macedit = QLineEdit()

self.macedit.setInputMask("HH:HH:HH:HH:HH:HH") #设置掩码

self.macedit.setPlaceholderText("请输入蓝牙MAC!")

self.macedit.textChanged.connect(self.getText)

self.file_list = QListWidget()

self.btn = QPushButton('开启自动锁屏')

layout = QGridLayout(self)

widget = QWidget()

widget.setLayout(layout)

self.setCentralWidget(widget)

layout.addWidget(self.file_list, 0, 0, 1, 2)

layout.addWidget(self.macedit,1,0,1 ,1)

layout.addWidget(self.btn, 1,1)

self.thread = Worker()

self.thread.file_changed_signal.connect(self.update_file_list)

self.file_changed_signal.connect(self.update_file_list)

self.btn.clicked.connect(self.thread_start)

self.macedit.setFocus()

os.remove("bluelock.ico") #删除图标

def getText(self, text):

global mac #全局mac变量,好处是当return不会用的时候有一个方式变通...

mac=text

def update_file_list(self, file_inf):

self.file_list.addItem(file_inf)

def thread_start(self): #开启进程--目的是防止GUI界面假死

if str((self.macedit.text()))==':::::': #判断是否空输入

self.file_changed_signal.emit('蓝牙MAC地址不能为空!')

print('没有填写蓝牙mac地址')

elif len(str((self.macedit.text())))!=17: #判断长度是否为17位

self.file_changed_signal.emit('没有填写正确蓝牙MAC格式!')

else:

self.btn.setEnabled(False)

self.macedit.setEnabled(False)

self.thread.start()

class Worker(QThread): #进程

file_changed_signal = pyqtSignal(str) # 信号类型:str

def __init__(self):

super().__init__()

self.working = True

def __del__(self):

self.working = False

self.wait()

def run(self):

while True:

self.findDevs() #调用核心函数和10秒休眠

time.sleep(10)

def findDevs(self):

target = mac

notfoundmac = []

err_conn = 0

for x in range(10): #锁屏条件--连续10次找不到

services = bluetooth.find_service(address=target)

if notfoundmac == services:

if mac =='':

self.file_changed_signal.emit('没有填写蓝牙mac地址')

break

err_conn = err_conn + 1

print(err_conn)

self.file_changed_signal.emit('未找到蓝牙地址,序号:%s' %err_conn)

if err_conn == 10:

user32 = windll.LoadLibrary('user32.dll') #锁屏

user32.LockWorkStation()

print('windows is locked!!!')

else:

print('keep alive...')

self.file_changed_signal.emit('keep alive...')

break

#base64转换为ico图标

img_b64_string=b'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'

print(img_b64_string)

convert_img_raw_data = base64.b64decode(img_b64_string)

t = open("bluelock.ico", "wb+")

t.write(convert_img_raw_data)

t.close()

app = QApplication(sys.argv)

dlg = lock()

dlg.show()

sys.exit(app.exec_())

2.界面

Image 1.png

3.代码虽然写的稀烂,但心是热的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值