国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現Windows上氣泡提醒效果的方法

2020-02-23 01:32:48
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現Windows上氣泡提醒效果的方法。分享給大家供大家參考。具體實現方法如下:

# -*- encoding: gbk -*- import sys import os import struct import time import win32con from win32api import * # Try and use XP features, so we get alpha-blending etc. try:  from winxpgui import * except ImportError:  from win32gui import * class PyNOTIFYICONDATA:  _struct_format = (   "I" # DWORD cbSize; 結構大小(字節)   "I" # HWND hWnd; 處理消息的窗口的句柄   "I" # UINT uID; 唯一的標識符   "I" # UINT uFlags;   "I" # UINT uCallbackMessage; 處理消息的窗口接收的消息   "I" # HICON hIcon; 托盤圖標句柄   "128s" # TCHAR szTip[128]; 提示文本   "I" # DWORD dwState; 托盤圖標狀態   "I" # DWORD dwStateMask; 狀態掩碼   "256s" # TCHAR szInfo[256]; 氣泡提示文本   "I" # union {     #  UINT uTimeout; 氣球提示消失時間(毫秒)     #  UINT uVersion; 版本(0 for V4, 3 for V5)     # } DUMMYUNIONNAME;   "64s" #  TCHAR szInfoTitle[64]; 氣球提示標題   "I" # DWORD 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 pack(self):   return self._struct.pack(    self._struct.size,    self.hWnd,    self.uID,    self.uFlags,    self.uCallbackMessage,    self.hIcon,    self.szTip,    self.dwState,    self.dwStateMask,    self.szInfo,    self.uTimeoutOrVersion,    self.szInfoTitle,    self.dwInfoFlags   )  def __setattr__(self, name, value):   # avoid wrong field names   if not hasattr(self, name):    raise NameError, name   self.__dict__[name] = value class MainWindow:  def __init__(self, title, msg, duration=3):   # Register the Window class.   wc = WNDCLASS()   hinst = wc.hInstance = GetModuleHandle(None)   wc.lpszClassName = "PythonTaskbarDemo"  # 字符串只要有值即可,下面3處也一樣   wc.lpfnWndProc = { win32con.WM_DESTROY: self.OnDestroy }  # could also specify a wndproc.   classAtom = RegisterClass(wc)   # Create the Window.   style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU   self.hwnd = CreateWindow(classAtom, "Taskbar Demo", style,    0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,    0, 0, hinst, None   )   UpdateWindow(self.hwnd)   iconPathName = os.path.abspath(os.path.join(sys.prefix, "pyc.ico"))  icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE   try:    hicon = LoadImage(hinst, iconPathName, win32con.IMAGE_ICON, 0, 0, icon_flags)   except:    hicon = LoadIcon(0, win32con.IDI_APPLICATION)   flags = NIF_ICON | NIF_MESSAGE | NIF_TIP   nid = (self.hwnd, 0, flags, win32con.WM_USER + 20, hicon, "Balloon tooltip demo")   Shell_NotifyIcon(NIM_ADD, nid)   self.show_balloon(title, msg)   time.sleep(duration)   DestroyWindow(self.hwnd)  def show_balloon(self, title, msg):   # For this message I can't use the win32gui structure because   # it doesn't declare the new, required fields   nid = PyNOTIFYICONDATA()   nid.hWnd = self.hwnd   nid.uFlags = NIF_INFO   # type of balloon and text are random   nid.dwInfoFlags = NIIF_INFO   nid.szInfo = msg[:64]   nid.szInfoTitle = title[:256]   # Call the Windows function, not the wrapped one   from ctypes import windll   Shell_NotifyIcon = windll.shell32.Shell_NotifyIconA   Shell_NotifyIcon(NIM_MODIFY, nid.pack())  def OnDestroy(self, hwnd, msg, wparam, lparam):   nid = (self.hwnd, 0)   Shell_NotifyIcon(NIM_DELETE, nid)   PostQuitMessage(0) # Terminate the app. if __name__=='__main__':  MainWindow("您有一條短消息", "您該睡覺了")            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德化县| 富顺县| 中西区| 云龙县| 汝城县| 含山县| 肥城市| 个旧市| 屯留县| 富宁县| 陇西县| 太仆寺旗| 中江县| 丘北县| 永宁县| 永善县| 伊宁市| 和田市| 襄城县| 山阴县| 田东县| 舟山市| 洪雅县| 大方县| 搜索| 谢通门县| 深圳市| 通渭县| 福泉市| 红河县| 昭觉县| 乌苏市| 大关县| 新郑市| 逊克县| 彝良县| 锡林郭勒盟| 武穴市| 陇南市| 乌鲁木齐县| 镇赉县|