Bonsoir,
Je cherche à executer une commande linux en cliquant sur un bouton, quelle commande dois utiliser?
Merci par avance,
Bonsoir,
Je cherche à executer une commande linux en cliquant sur un bouton, quelle commande dois utiliser?
Merci par avance,
Je vous passe mon code, ca pourra peut-etre vous eclaircir.
Merci par avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #!/usr/bin/env python import os import Tkinter Manager=Tkinter.Tk() # Presentation du programme presentation=Tkinter.Label(Manager, text='Mise en route du programme NetworkManager') presentation.pack() # Programme d'execution def Network(): ad="su root -c /usr/sbin/NetworkManager" com=os.system(ad) # Creation du bouton Network Bouton=Tkinter.Button(Manager, text='NetworkManager', command=Network, bg='yellow', fg='black') Bouton.pack() Manager.mainloop()
il marche ton code, le problème c'est que la commande su a besoin du mot de passe admin
si tu lance ton script depuis un terminal tu verras que "Password:" apparait lorsque tu cliques et qu'il faut le donner
il doit être possible de passer automatiquement le mot de passe en faisant un pipe
Justement j'ai supprimé le mot de passe root, pour ne plus avoir la demande.
Seulement quand je l'execute, cela ne fonctionne pas et je ne sais pas pourquoi.
J'ai fais une modif pour l'avoir en mode graphique.
Quand je demarre mon PC j'ai bien mon programme qui s'execute, mais NetworkManager ne fonctionne toujours pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #!/usr/bin/env python import os import Tkinter import tkMessageBox Manager=Tkinter.Tk() # Presentation du programme presentation=Tkinter.Label(Manager, text='Mise en route du programme NetworkManager') presentation.pack() # Programme d'execution def Network(): ad="su root -c /usr/sbin/NetworkManager" com=os.system(ad) tkMessageBox.showinfo("INFO", "Fonctionnement de Network") # Creation du bouton Network Bouton=Tkinter.Button(Manager, text='NetworkManager', command=Network, bg='yellow', fg='black') Bouton.pack() Manager.mainloop()
Je ne comprend pas pourquoi![]()
es-tu sur que la commande os.system se passe bien ?
il ne t'écrit rien dans la console ?
Justement je n'ai pas la console.
Si je ne fais pas le programme graphiquement, la fenetre s'ouvre 1/10e de seconde et se referme aussitot.
Graphiquement je vois la fenetre, je clik sur OK, mais apparement NetworkManager ne s'execute pas.
J'ai aussi remplacer le code :
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part ad="su root -c /usr/sbin/NetworkManager"
Et toujours pas le resultat attendu, la commande NetworkManager ne s'execute pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ad="su root -c NetworkManager"
Alors que si je le fais manuellement cela fonctionne tres bien.
Bizarre, bizarre
![]()
Partager