香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

Python实现Windows上气泡提醒效果的方法


时间:2021-12-08 14:51 作者:admin


本文实例讲述了python/' target='_blank'>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("您有一条短消息", "您该睡觉了")

希望本文所述对大家的Python程序设计有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)