python实现桌面托盘气泡提示

  

本文实例为大家分享了python实现桌面托盘气泡提示的具体代码,供大家参考,具体内容如下

        # - * -编码:utf - 8 - *   ##############################   #   #程序名:python桌面托盘气泡   #文件名:clsBubble.py   #功能:实现桌面托盘气泡提示功能   #修改:通过adengou 2016.1.4   #程序:python3.4.4   #适用:视窗xp -windows10   #   ##############################   导入系统   进口操作系统   进口结构   导入的时间   进口win32con      从win32api进口*   #试着使用XP的特性,所以我们得到alpha-blending等等。   试一试:   从winxpgui进口*   除了ImportError:   从win32gui进口*         类PyNOTIFYICONDATA:   _struct_format=(   “我”字# cbSize;结构大小(字节)   “我”# HWND HWND;处理消息的窗口的句柄   “我”#使用UINT uID;唯一的标识符   “我”#使用UINT uFlags;   “我”#使用UINT uCallbackMessage;处理消息的窗口接收的消息   “我”# HICON HICON;托盘图标句柄   “128年代”# TCHAR szTip [128];提示文本   “我”字# dwState;托盘图标状态   “我”字# dwStateMask;状态掩码   “256年代”# TCHAR szInfo [256];气泡提示文本   “我”#{联盟   #使用UINT uTimeout;气球提示消失时间(毫秒)   #使用UINT uVersion;版本(V5 0 V4, 3)   #}DUMMYUNIONNAME;   “64年代”# TCHAR szInfoTitle [64];气球提示标题   “我”字# dwInfoFlags;气球提示图标   )   _struct=struct.Struct (_struct_format)      hWnd=0   uID=0   uFlags=0   uCallbackMessage=0   hIcon=0   szTip="   dwState=0   dwStateMask=0   szInfo="   uTimeoutOrVersion=0   szInfoTitle="   dwInfoFlags=0      def包(自我):   返回self._struct.pack (   self._struct.size,   self.hWnd,   self.uID,   self.uFlags,   self.uCallbackMessage,   self.hIcon,   self.szTip.encode (“gbk”),   self.dwState,   self.dwStateMask,   self.szInfo.encode (“gbk”),   self.uTimeoutOrVersion,   self.szInfoTitle.encode (“gbk”),   self.dwInfoFlags   )      def __setattr__(自我、名称、值):   #避免错误的字段名称   如果不是hasattr(自我、名称):   提高(NameError名称)   自我。__dict__[名字]=价值      类主窗口:   def __init__(自我):   #初始化变量   自我。标题=" "   自我。味精=" "   self.duration=5 #延时5秒   自我。hwnd=没有   自我。hinst=没有   自我。regOk=False   # self.creWind ()         def creWind(自我):   #注册窗口类。   wc=WNDCLASS ()   自我。hinst=wc。实例句柄=GetModuleHandle(无)   wc。lpszClassName=" PythonTaskbarDemo " #字符串只要有值即可,下面3处也一样   wc。lpfnWndProc={win32con。WM_DESTROY:自我。OnDestroy} #也可以指定一个指向。   classAtom=RegisterClass (wc)   #创建窗口。=win32con风格。WS_OVERLAPPED | win32con.WS_SYSMENU   自我。hwnd=CreateWindow (classAtom,“任务栏演示”风格,   0,0,win32con。CW_USEDEFAULT win32con.CW_USEDEFAULT,   0,0,自我。hinst,没有   )   UpdateWindow (self.hwnd)   #   def startBubble(自我、标题、味精、持续时间=3):      如果(self.hwnd==None):   self.creWind ()   自我。标题=标题   self.msg=味精   self.duration=持续时间      iconPathName=os.path.abspath (os.path.join (sys。前缀,os.getcwd () +“\ \ pyc.ico”))   icon_flags=win32con。LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE   试一试:   hicon=LoadImage(自我。hinst、iconPathName win32con。IMAGE_ICON 0 0, icon_flags)   除了:   win32con.IDI_APPLICATION hicon=LoadIcon (0)   旗帜=NIF_ICON | NIF_MESSAGE | NIF_TIP   nid=(自我。hwnd, 0,旗帜,win32con。hicon WM_USER + 20日,“气球提示演示”)   试一试:   )Shell_NotifyIcon (NIM_ADD国家免疫日   除了:   self.hwnd==没有   self.show_balloon(自我。标题、self.msg)      time . sleep (self.duration)   # ReleaseDC (self.hwnd wc)   # DeleteDC (wc)   试一试:   DestroyWindow (self.hwnd)   self.hwnd==没有   除了:   回来没有         def show_balloon(自我、标题、味精):   #对于这个消息我不能使用因为win32gui结构   #不申报新,需要的字段      nid=PyNOTIFYICONDATA ()   nid。hWnd=self.hwnd   nid。uFlags=NIF_INFO      #类型的气球和文本是随机的   。#国家免疫日dwInfoFlags=NIIF_INFO   nid。szInfo=味精(64):   nid。szInfoTitle=标题(256):      #调用窗口函数,而不是包装   从ctypes进口windll   Shell_NotifyIcon=windll.shell32.Shell_NotifyIconA   Shell_NotifyIcon (NIM_MODIFY nid.pack ())      def OnDestroy(自我,hwnd,味精、按钮、lparam):   nid=(自我。hwnd, 0)   )Shell_NotifyIcon (NIM_DELETE国家免疫日   PostQuitMessage(0) #终止应用程序。      if __name__==癬_main__”:   msgTitle=u”您有一条短消息”   python msgContent=u“你好”   msgTitle=msgTitle   泡沫=主窗口()   bubble.startBubble (msgTitle msgContent)   泡沫。startBubble (msgTitle u“我一个气球”)   泡沫。startBubble (msgTitle u“怎么你觉得# 63;”)

python实现桌面托盘气泡提示