Des boîtes d'alerte en Python?
est-il possible de produire une alerte similaire à celle de JavaScript("message") en python, avec une application fonctionnant comme un démon.
cela sera exécuté sous Windows, très probablement XP mais 2000 et Vista sont aussi des possibilités très réelles.
mise à Jour:
Ceci est destiné à s'exécuter en arrière-plan et alerte l'utilisateur lorsque certaines conditions sont remplies, je me dis que la meilleure façon d'alerter l'utilisateur serait de produire un pop-up, comme il doit être manipulé immédiatement, et d'autres options comme l'exploitation forestière, ou l'envoi d'un e-mail ne sont pas assez efficaces.
4 réponses
qu'en ceci:
import win32api
win32api.MessageBox(0, 'hello', 'title')
en Outre:
win32api.MessageBox(0, 'hello', 'title', 0x00001000)
fera apparaître la boîte sur les autres fenêtres, pour les messages urgents. Voir fonction MessageBox pour les autres options.
GTK peut être une meilleure option, car il est multi-plateforme. Cela fonctionne très bien sur Ubuntu, et devrait fonctionner très bien sur Windows lorsque les fixations GTK et Python sont installées.
from gi.repository import Gtk
dialog = Gtk.MessageDialog(None, 0, Gtk.MessageType.INFO,
Gtk.ButtonsType.OK, "This is an INFO MessageDialog")
dialog.format_secondary_text(
"And this is the secondary text that explains things.")
dialog.run()
print "INFO dialog closed"
Vous pouvez voir d'autres exemples ici. (pdf)
les arguments passés devraient être le gtk.fenêtre parent (ou Aucun), DestroyWithParent, type de Message, Message-boutons, titre.
vous pouvez utiliser la bibliothèque win32 En Python, c'est un exemple classique de OK ou D'Cancel.
import win32api
import win32com.client
import pythoncom
result = win32api.MessageBox(None,"Do you want to open a file?", "title",1)
if result == 1:
print 'Ok'
elif result == 2:
print 'cancel'
La collection:
win32api.MessageBox(0,"msgbox", "title")
win32api.MessageBox(0,"ok cancel?", "title",1)
win32api.MessageBox(0,"abort retry ignore?", "title",2)
win32api.MessageBox(0,"yes no cancel?", "title",3)
démarrer une application comme un processus de fond qui soit a un port TCP lié à localhost, ou communique à travers un fichier -- votre démon a le fichier ouvert, et puis vous echo "foo" > c:\your\file
. Après, disons, 1 seconde de aucune activité, vous affichez le message et tronquez le fichier.