| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 
 | #!/usr/bin/python
 
from threading import Thread
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import os, sys, time, ctypes, win32con
from ctypes import wintypes
 
fenetre = None
trayIcon = None
statut_on_off = True
 
 
class MaFenetre(QWidget):
 
     def __init__(self, FL=220, FH=100):
        QWidget.__init__(self) 
 
        self.setWindowIcon(QIcon("icone64.ico"))
        self.setWindowTitle("Window")
        self.setFixedSize(FL, FH)
 
     def closeEvent(self, event): 
        global trayIcon
        event.ignore()
        self.hide()       
 
 
 
 
class SystemTrayIcon(QSystemTrayIcon):
 
    def __init__(self, icon, parent=None):
        QSystemTrayIcon.__init__(self, icon, parent)
        self.menu = QMenu(parent)
        self.exitAction = self.menu.addAction("Exit")
        self.MenuPrincipal = self.menu.addAction("Menu principal")
        self.exitAction.triggered.connect(SystemTrayIcon.EXIT)
        self.MenuPrincipal.triggered.connect(SystemTrayIcon.MenuPrincipal)
        self.setContextMenu(self.menu)
 
    def EXIT():
        QApplication.quit()
 
    def MenuPrincipal(self,):
        global trayIcon
        global fenetre
        fenetre.show()
 
    def on_off(self,):
        global statut_on_off
        global trayIcon
 
        if statut_on_off == True:
            statut_on_off = False
            trayIcon.hide()
        else:
            statut_on_off = True
            trayIcon.show()
        return
 
 
def HotKeysS():
 
  byref = ctypes.byref
  user32 = ctypes.windll.user32   
 
  def NUMPAD0():
    SystemTrayIcon.on_off(trayIcon)  
 
 
  HOTKEYS = {
    0 : (win32con.VK_NUMPAD0, win32con.MOD_CONTROL),
  }
 
 
  HOTKEY_ACTIONS = {
    0 : NUMPAD0,
  }
 
  for id, (vk, modifiers) in HOTKEYS.items():
    print ("Registering id", id, "for key", vk)
    if not user32.RegisterHotKey (None, id, modifiers, vk):
      print ("Unable to register id", id)
 
 
  try:
    msg = wintypes.MSG ()
    while user32.GetMessageA (byref (msg), None, 0, 0) != 0:
      if msg.message == win32con.WM_HOTKEY:
        action_to_take = HOTKEY_ACTIONS.get (msg.wParam)
        if action_to_take:
          action_to_take ()
      user32.TranslateMessage (byref (msg))
      user32.DispatchMessageA (byref (msg))
  finally:
    for id in HOTKEYS.keys ():
      user32.UnregisterHotKey (None, id)
 
 
 
def main():
    global trayIcon
    global fenetre  
    a=QApplication(sys.argv)
    TI=QWidget()
    trayIcon = SystemTrayIcon(QIcon("icone64.ico"), TI)
    fenetre=MaFenetre()
    trayIcon.show()
    sys.exit(a.exec_())
 
thread_1 = Thread(target = HotKeysS)
 
if __name__ == '__main__':
    thread_1.start()
    main() |