最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 14:33:57
文档

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

Python实现Windows上气泡提醒效果的方法:本文实例讲述了Python实现Windows上气泡提醒效果的方法。分享给大家供大家参考。具体实现方法如下: # -*- encoding: gbk -*- import sys import os import struct import time import win32con from win32api imp
推荐度:
导读Python实现Windows上气泡提醒效果的方法:本文实例讲述了Python实现Windows上气泡提醒效果的方法。分享给大家供大家参考。具体实现方法如下: # -*- encoding: gbk -*- import sys import os import struct import time import win32con from win32api imp


本文实例讲述了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; 
 "s" # TCHAR szInfoTitle[]; 气球提示标题 
 "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[:] 
 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程序设计有所帮助。

文档

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

Python实现Windows上气泡提醒效果的方法:本文实例讲述了Python实现Windows上气泡提醒效果的方法。分享给大家供大家参考。具体实现方法如下: # -*- encoding: gbk -*- import sys import os import struct import time import win32con from win32api imp
推荐度:
标签: Windows 实现 window
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top