Подтвердить что ты не робот

Оповещения в Python?

Возможно ли создать предупреждение, подобное предупреждению JavaScript ( "сообщение" ) в python, с приложением, запущенным в качестве демона.

Это будет работать в Windows, скорее всего, XP, но 2000 и Vista также являются очень реальными возможностями.

Обновление:
Это предназначено для запуска в фоновом режиме и предупреждения пользователя при выполнении определенных условий, я полагаю, что самый простой способ предупредить пользователя - создать всплывающее окно, так как его нужно немедленно обработать, а также другие параметры, такие как просто регистрация или отправка электронной почты недостаточно эффективны.

4b9b3361

Ответ 1

что об этом:

import win32api

win32api.MessageBox(0, 'hello', 'title')

Дополнительно:

win32api.MessageBox(0, 'hello', 'title', 0x00001000) 

сделает поле появляться поверх других окон, для срочных сообщений. См. Функция MessageBox для других параметров.

Ответ 2

GTK может быть лучшим вариантом, поскольку он является кросс-платформенным. Он отлично подойдет Ubuntu и должен отлично работать в Windows при установке GTK и Python.

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"

Здесь вы можете увидеть другие примеры здесь. (pdf)

Переданные аргументы должны быть родителями gtk.window(или None), DestroyWithParent, типом сообщения, кнопками сообщений, заголовком.

Ответ 3

Вы можете использовать библиотеку win32 в Python, это классический пример OK или 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'

Коллекция:

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)

Ответ 4

Для тех из нас, кто ищет чисто Python-опцию, которая не взаимодействует с Windows и не зависит от платформы, я выбрал опцию, указанную на следующем веб-сайте:

https://pythonspot.com/tk-message-box/

# Python 3.x code
# Imports
import tkinter
from tkinter import messagebox

# This code is to hide the main tkinter window
root = tkinter.Tk()
root.withdraw

# Message Box
messagebox.showinfo("Title", "Message")

Вы можете выбрать отображение различных типов параметров сообщений в различных сценариях:

  • ShowInfo()
  • showwarning()
  • showerror()
  • askquestion()
  • askokcancel()
  • askyesno()
  • askretrycancel()

Ответ 5

Запустите приложение как фоновый процесс, который либо имеет TCP-порт, привязанный к локальному хосту, либо обмениваясь данными через файл - у вашего демона открыт файл, а затем вы echo "foo" > c:\your\file. После, скажем, 1 секунды без активности, вы выводите сообщение и обрезаете файл.