Menu quitter de windows xp

Description

Voila une simple copie du menu quiter de windows...

J'utilise Photoimage, qui affiche des screenshots du menu, utilisable sous tout les os ! (a condition de changer les fonctions)

Source / Exemple :


from sys import exit
from os import system
from Tkinter import *
from tkMessageBox import showinfo
flag=1
flag1=0
flag2=0

def eteindre (event=None):
    system('shutdown.exe -s -t 0')

def redemarer (event=None) :
    system('shutdown.exe -r -t 0')

def veille (event=None) :
    system('rundll32.exe powrprof.dll,SetSuspendState')

def d (event=None):
    global flag
    flag+=1
    if flag == 5 :flag= 4
    mod()

def g (event=None):
    global flag
    flag-=1
    if flag == 0 :flag= 1
    mod()

def a (event=None):
    global flag1
    if not flag1 : flag1=1 ; mod(); root.after(10000,_a)

def _a (event=None):
    global flag1
    flag1=0
    mod()

def m (event=None):
    global foto,flag2,item2
    if event.y in range(82,115):
        if event.x in range (55,84):
            if flag2  != 1 :
                if flag2 !=0: can.delete(foto)
                foto=PhotoImage(file='v.gif')
                item2=can.create_image(69,97,image=foto)
                flag2=1 
        elif event.x in range (175,208):
            if flag2  != 2 :
                if flag2 !=0: can.delete(foto)
                foto=PhotoImage(file='e.gif')
                item2=can.create_image(189,97,image=foto)
                flag2=2
        elif event.x in range (294,326):
            if flag2  != 3 :
                if flag2 !=0: can.delete(foto)
                foto=PhotoImage(file='r.gif')
                item2=can.create_image(308,98,image=foto)
                flag2=3
        else :
            if flag2 !=0:
                can.delete(item2)
                flag2=0
    elif event.x in range(310,368):
        if event.y in range(169,188):
            if flag2  != 4 :
                if flag2 !=0: can.delete(foto)
                foto=PhotoImage(file='c.gif')
                item2=can.create_image(337,178,image=foto)
                flag2=4
        else :
            if flag2 !=0:
                can.delete(item2)
                flag2=0
    else :
        if flag2 !=0:
            can.delete(item2)
            flag2=0

def mod (event=None) :
    global photo,item
    can.delete(item)
    if flag1 :
        if flag == 1 : photo=PhotoImage(file='dash_v_.gif')
        elif flag == 2 : photo=PhotoImage(file='dash_e_.gif')
        elif flag == 3 : photo=PhotoImage(file='dash_r_.gif')
        elif flag == 4 : photo=PhotoImage(file='dash_c_.gif')
        else : print 0
    else :
        if flag == 1 : photo=PhotoImage(file='dash_v.gif')
        elif flag == 2 : photo=PhotoImage(file='dash_e.gif')
        elif flag == 3 : photo=PhotoImage(file='dash_r.gif')
        elif flag == 4 : photo=PhotoImage(file='dash_c.gif')
        else : print 1
    item=can.create_image(191,100,image=photo)

def jj (event=None) :
    global flag2
    if flag2 !=0:
        can.delete(item2)
        flag2=0
        if event.y in range(82,115):
            if event.x in range (55,84):
                veille()
            elif event.x in range (175,208):
                eteindre()
            elif event.x in range (294,326):
                redemarer()
        elif event.x in range(310,368):
            if event.y in range(169,188):
                exit()

root=Tk()
root.title('exit window')
root.bind('<Right>',d)
root.bind('<Left>',g)
root.bind('<m>',veille)
root.bind('<t>',eteindre)
root.bind('<r>',redemarer)
root.bind('<Alt-a>',a)                       # pour simuler le alt 
can=Canvas(height=200,width=382,bg='grey')
photo=PhotoImage(file='dash_v.gif')
item=can.create_image(191,100,image=photo)
can.grid(row=1,column=0,columnspan=5)
can.bind('<Button1-Motion>',m)
can.bind('<Button-1>',m)
can.bind('<Button1-ButtonRelease>',jj)
root.mainloop()

Conclusion :


Attention l'ordi se redemare et s'éteint vraiment !!!

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.