from PyQt5 import QtWidgets, QtCore import py.start_window as start_window from py.show_msg import show_msg class Interface(start_window.StartWindow): def __init__(self): super().__init__() if __name__ == "__main__": lock_file = None try: app = QtWidgets.QApplication(sys.argv) lock_file = QtCore.QLockFile("password_saver.lock") if lock_file.tryLock(): window = Interface() window.show() sys.exit(app.exec_()) else: show_msg(title='Ошибка', top_text='Программа уже запущена', window_type='warning', buttons='ok') finally: lock_file.unlock()
self.lock_pid = lock_pid def _window_enum_callback(self, hwnd, wildcard): tid, pid = win32process.GetWindowThreadProcessId(hwnd) title = win32gui.GetWindowText(hwnd) if (self.lock_pid == pid) and (title == wildcard): win32gui.ShowWindow(hwnd, 9) win32gui.SetForegroundWindow(hwnd) win32gui.SetActiveWindow(hwnd) def find_window_wildcard(self, wildcard=PRODUCT_CONFIG['PRODUCT_NAME']): win32gui.EnumWindows(self._window_enum_callback, wildcard) if __name__ == '__main__': lockfile = QtCore.QLockFile(os.getenv('TEMP') + '/MDFE.lock') if not lockfile.tryLock(): mgr = WindowMgr(lockfile.getLockInfo()[1]) mgr.find_window_wildcard() sys.exit() app = QtWidgets.QApplication(sys.argv) splash_pix = QtGui.QPixmap('..\\resources\\app\\Mulgyeol Labs splash.png') splash_pix = splash_pix.scaledToHeight(350) splash = QtWidgets.QSplashScreen(splash_pix, QtCore.Qt.WindowStaysOnTopHint) splash.show() UDriver.check_update() ex1 = Main_Window()
exitAction = menu.addAction("Exit") exitAction.triggered.connect(QtCore.QCoreApplication.quit) self.setContextMenu(menu) self.mainWindow = mainWindow self.activated.connect(self.active) def active(self, reason): if reason == 3: # left click self.currentlyActive = not self.currentlyActive if self.currentlyActive: self.setIcon(self.activeIcon) else: self.setIcon(self.inactiveIcon) if __name__ == '__main__': from PyQt5 import QtCore, QtWidgets lockfile = QtCore.QLockFile(QtCore.QDir.tempPath() + f'/{appName}.lock') if lockfile.tryLock(100): # run only once! app = QtWidgets.QApplication(sys.argv) main = Main() app.setQuitOnLastWindowClosed(False) sys.exit(app.exec_()) else: print('app is already running')
def mousePressEvent(self, event): self.dragPos = event.globalPos() def mouseMoveEvent(self, event): if event.buttons() == QtCore.Qt.LeftButton: self.move(self.pos() + event.globalPos() - self.dragPos) self.dragPos = event.globalPos() event.accept() if __name__ == "__main__": lock_file = None try: app = QtWidgets.QApplication(sys.argv) lock_file = QtCore.QLockFile("shutdown_pc.lock") if lock_file.tryLock(): shutdown_pc = UiShutdownPc() shutdown_pc.show() sys.exit(app.exec_()) else: icon_spc = QtGui.QIcon() icon_spc.addPixmap(QtGui.QPixmap(":/ico/img/shutdown.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off) msg_lock = QMessageBox() msg_lock.setWindowIcon(icon_spc) msg_lock.setIcon(QMessageBox.Warning) msg_lock.setWindowTitle("Ошибка") msg_lock.setText("Программа уже запущена.")