Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import subprocess, time
- from PyQt4 import QtCore, QtGui
- try:
- _fromUtf8 = QtCore.QString.fromUtf8
- except AttributeError:
- def _fromUtf8(s):
- return s
- try:
- _encoding = QtGui.QApplication.UnicodeUTF8
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig, _encoding)
- except AttributeError:
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig)
- global k
- k = ['SSID', 'Тип защиты', 'Шифрование', 'MAC-адрес', 'Сигнал', 'Тип сети']
- class MyThread(QtCore.QThread):
- def __init__(self, parent=None):
- QtCore.QThread.__init__(self, parent)
- self.ru=False
- def run(self):
- self.ru=True
- ssi = []
- sig = []
- bez = []
- shif = []
- tip = []
- mac = []
- while self.ru:
- global k
- self.sleep(1)
- pro = QtCore.QProcess() # create QProcess object
- pro.start('netsh', ['wlan', 'show', 'networks', 'mode=bssid'])
- pro.waitForReadyRead()
- y = pro.readAllStandardOutput()
- tem = bytes(y).decode('cp866')
- pro.waitForFinished()
- pro.terminate()
- # Передача данных из потока через сигнал
- # txt = open('test.txt', 'r')
- ssi.clear()
- shif.clear()
- bez.clear()
- sig.clear()
- tip.clear()
- mac.clear()
- # ipc = subprocess.check_output(['netsh', 'wlan', 'show', 'help'])
- c = str(tem).split('\n')
- te = []
- t = len(c) - 1
- for i in range(0, t):
- te.append(c[i])
- # while out:
- # out = str(ipc)
- # f = out.encode('cp1251').decode('cp866')
- for i in range(0, t):
- f = te[i]
- if k[0] in f:
- ssi.append(f[8:])
- if k[4] in f:
- sig.append(f[-5:])
- if 'Проверка' in f:
- bez.append(f[30:])
- if 'Шифрование' in f:
- shif.append(f[30:])
- if 'радио' in f:
- tip.append(f[-8:])
- for j in range(1, len(ssi) // 2 + 1):
- buff = ssi.pop(j)
- buff = buff[28:]
- mac.append(buff)
- # txt.close()
- self.emit(QtCore.SIGNAL("mysignal(PyQt_PyObject, PyQt_PyObject,"
- "PyQt_PyObject,PyQt_PyObject, PyQt_PyObject,PyQt_PyObject)"), ssi, sig, bez,
- mac,
- shif, tip)
- class Ui_MainWindow(QtGui.QMainWindow):
- def setupUi(self, MainWindow):
- MainWindow.setObjectName(_fromUtf8("MainWindow"))
- MainWindow.resize(668, 376)
- MainWindow.setWindowFlags(QtCore.Qt.MSWindowsFixedSizeDialogHint|QtCore.Qt.WindowMaximizeButtonHint)
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
- icon = QtGui.QIcon()
- icon.addPixmap(QtGui.QPixmap(_fromUtf8("../Prjct/signal-2-256x256.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
- MainWindow.setWindowIcon(icon)
- self.centralwidget = QtGui.QWidget(MainWindow)
- self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
- global table
- self.table = QtGui.QTableWidget(self.centralwidget)
- self.table.setGeometry(QtCore.QRect(10, 20, 651, 291))
- self.table.setMinimumSize(QtCore.QSize(0, 0))
- k=['SSID','Тип защиты','Шифрование', 'MAC-адрес','Сигнал','Тип сети']
- self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
- self.table.setObjectName(_fromUtf8("tableView"))
- self.table.setColumnCount(6)
- self.table.setHorizontalHeaderLabels(k)
- self.pushButton = QtGui.QPushButton(self.centralwidget)
- self.pushButton.setGeometry(QtCore.QRect(580, 320, 75, 23))
- self.pushButton.setObjectName(_fromUtf8("pushButton"))
- self.pushButton1 = QtGui.QPushButton(self.centralwidget)
- self.pushButton1.setGeometry(QtCore.QRect(500, 320, 75, 23))
- self.pushButton1.setObjectName(_fromUtf8("pushButton"))
- MainWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtGui.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 551, 21))
- self.menubar.setObjectName(_fromUtf8("menubar"))
- self.menu = QtGui.QMenu(self.menubar)
- self.menu.setObjectName(_fromUtf8("menu"))
- MainWindow.setMenuBar(self.menubar)
- self.action_html = QtGui.QAction(MainWindow)
- self.action_html.setObjectName(_fromUtf8("action_html"))
- self.action_Excel = QtGui.QAction(MainWindow)
- self.action_Excel.setObjectName(_fromUtf8("action_Excel"))
- self.mythread = MyThread()
- self.menu.addAction(self.action_html)
- self.menu.addAction(self.action_Excel)
- self.menubar.addAction(self.menu.menuAction())
- self.pushButton.connect(self.pushButton, QtCore.SIGNAL('clicked()'), self.on_clicked)
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
- self.pushButton1.connect(self.pushButton1, QtCore.SIGNAL("clicked()"),
- self.stop)
- self.connect(self.mythread, QtCore.SIGNAL("started()"),
- self.on_started)
- self.connect(self.mythread, QtCore.SIGNAL("finished()"),
- self.on_finished)
- self.connect(self.mythread, QtCore.SIGNAL("mysignal(PyQt_PyObject, PyQt_PyObject, PyQt_PyObject, PyQt_PyObject, PyQt_PyObject, PyQt_PyObject)"),
- self.test, QtCore.Qt.QueuedConnection)
- def retranslateUi(self, MainWindow):
- MainWindow.setWindowTitle(_translate("MainWindow", "Wifi Checker", None))
- self.pushButton.setText(_translate("MainWindow", "Старт", None))
- self.pushButton1.setText(_translate("MainWindow", "Стоп", None))
- self.pushButton1.setDisabled(True)
- self.menu.setTitle(_translate("MainWindow", "Импортировать", None))
- self.action_html.setText(_translate("MainWindow", "В html", None))
- self.action_Excel.setText(_translate("MainWindow", "В Excel", None))
- def on_clicked(self):
- self.pushButton1.setDisabled(False)
- if not self.mythread.isRunning():
- self.mythread.start() # Запускаем поток
- def on_started(self): # Вызывается при запуске потока
- self.pushButton.setDisabled(True)
- def stop(self):
- self.mythread.ru = False
- def on_finished(self): # Вызывается при завершении потока
- self.pushButton.setDisabled(False)
- self.pushButton1.setDisabled(True)
- def test(self, ssi,sig,bez,mac,shif,tip):
- self.table.setRowCount(len(ssi))
- for i in range(0, len(ssi)):
- self.table.setItem(i, 0, QtGui.QTableWidgetItem(ssi[i]))
- self.table.setItem(i, 1, QtGui.QTableWidgetItem(bez[i]))
- self.table.setItem(i, 2, QtGui.QTableWidgetItem(shif[i]))
- self.table.setItem(i, 3, QtGui.QTableWidgetItem(mac[i]))
- self.table.setItem(i, 4, QtGui.QTableWidgetItem(sig[i]))
- self.table.setItem(i, 5, QtGui.QTableWidgetItem(tip[i]))
- if __name__ == "__main__":
- import sys
- app = QtGui.QApplication(sys.argv)
- MainWindow = QtGui.QMainWindow()
- ui = Ui_MainWindow()
- global te
- te = 0
- ui.setupUi(MainWindow)
- MainWindow.show()
- sys.exit(app.exec_())
Add Comment
Please, Sign In to add comment