2008-10-07 81 views
21

是否有可能在python中產生類似於JavaScript警報(「消息」)的警報,其中應用程序作爲守護程序運行。Python中的警報框?

這將在Windows上運行,很可能XP,但2000和Vista也是非常現實的可能性。

更新:
這是爲了在後臺運行,並提醒當某些條件得到滿足的用戶,我的身影,提醒用戶最簡單的方法是將產生一個彈出,因爲它需要立即處理,其他選項(如僅記錄或發送電子郵件)效率不夠高。

+1

我想一個更好的方式來說這是一個「後臺進程」而不是一個守護進程。 – UnkwnTech 2008-10-07 05:25:36

回答

38
這個

什麼:

import win32api 

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

此外:

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

會讓框出現在其他窗口的頂部,緊急消息。其他選項請參閱MessageBox function

+0

這完全是我需要的,謝謝。 – UnkwnTech 2008-10-07 05:37:55

+2

有關此功能的更多信息,我發現這個:http://docs.activestate.com/activepython/2.4/pywin32/win32api__MessageBox_meth.html – UnkwnTech 2008-10-07 05:40:02

+11

我得到`ImportError:No module named win32api`。 – user 2012-05-28 11:00:52

-2

啓動一個應用程序作爲後臺進程,該進程要麼具有綁定到本地主機的TCP端口,要麼通過文件進行通信 - 您的守護進程已打開該文件,然後執行echo "foo" > c:\your\file。例如,1秒鐘沒有任何活動後,顯示消息並截斷文件。

1

您可以在Python中使用win32庫,這是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) 
3

GTK可能是一個更好的選擇,因爲它是跨平臺的。它可以在Ubuntu上運行得很好,並且在安裝GTK和Python綁定時應該可以在Windows上正常工作。

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" 

您可以看到其他示例here。 (pdf

傳遞的參數應該是gtk.window父級(或無),DestroyWithParent,消息類型,消息按鈕,標題。