欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python實(shí)現(xiàn)桌面托盤氣泡提示

系統(tǒng) 1683 0

本文實(shí)例為大家分享了python實(shí)現(xiàn)桌面托盤氣泡提示的具體代碼,供大家參考,具體內(nèi)容如下

            
# -*- encoding:utf-8 -*- 
##############################
#
# 程序名:python桌面托盤氣泡
# 文件名:clsBubble.py
# 功能 :實(shí)現(xiàn)桌面托盤氣泡提示功能
# modify:by adengou 2016.1.4
# program:python3.4.4
# 適用 :windowsXP -windows10
#
##############################
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; 結(jié)構(gòu)大小(字節(jié)) 
 "I" # HWND hWnd; 處理消息的窗口的句柄 
 "I" # UINT uID; 唯一的標(biāo)識(shí)符 
 "I" # UINT uFlags; 
 "I" # UINT uCallbackMessage; 處理消息的窗口接收的消息 
 "I" # HICON hIcon; 托盤圖標(biāo)句柄 
 "128s" # TCHAR szTip[128]; 提示文本 
 "I" # DWORD dwState; 托盤圖標(biāo)狀態(tài) 
 "I" # DWORD dwStateMask; 狀態(tài)掩碼 
 "256s" # TCHAR szInfo[256]; 氣泡提示文本 
 "I" # union { 
  # UINT uTimeout; 氣球提示消失時(shí)間(毫秒) 
  # UINT uVersion; 版本(0 for V4, 3 for V5) 
  # } DUMMYUNIONNAME; 
 "64s" # TCHAR szInfoTitle[64]; 氣球提示標(biāo)題 
 "I" # DWORD dwInfoFlags; 氣球提示圖標(biāo) 
 ) 
 _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.encode("gbk"), 
  self.dwState, 
  self.dwStateMask, 
  self.szInfo.encode("gbk"), 
  self.uTimeoutOrVersion, 
  self.szInfoTitle.encode("gbk"), 
  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):
 #初始化變量
 self.title =""
 self.msg =""
 self.duration=5#延時(shí)5秒
 self.hwnd =None
 self.hinst =None
 self.regOk = False
 #self.creWind()
 
 
 def creWind(self):
  # Register the Window class.
 wc = WNDCLASS() 
 self.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, self.hinst, None 
 )
 UpdateWindow(self.hwnd)
 #
 def startBubble(self,title, msg, duration=3):
 
 if(self.hwnd==None):
  self.creWind()
 self.title =title
 self.msg=msg
 self.duration=duration
 
 iconPathName = os.path.abspath(os.path.join(sys.prefix, os.getcwd()+"\\pyc.ico")) 
 icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE 
 try: 
  hicon = LoadImage(self.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") 
 try:
  Shell_NotifyIcon(NIM_ADD, nid)
 except:
  self.hwnd==None
 self.show_balloon(self.title, self.msg)
 
 time.sleep(self.duration)
 #ReleaseDC(self.hwnd,wc)
 #DeleteDC(wc)
 try:
  DestroyWindow(self.hwnd)
  self.hwnd==None
 except:
  return None
 
 
 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__':
 msgTitle =u"您有一條短消息"
 msgContent =u"hello python"
 msgTitle =msgTitle
 bubble =MainWindow()
 bubble.startBubble(msgTitle,msgContent)
 bubble.startBubble(msgTitle,u"i'm a balloon")
 bubble.startBubble(msgTitle,u"how do u feel?")
          

本程序修改網(wǎng)上的程序,適用于WINDOWS平臺(tái),有興趣的朋友還可以修改成最小化托盤程序。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久免费看少妇高潮A片JA小说 | 精品在线一区二区 | 成人小视频在线观看 | 久久久久国产一区二区三区 | 国产精品久久久久国产A级 首页亚洲国产丝袜长腿综合 | 国产sm主人调教女m视频 | 蜜臀在线免费观看 | 九九久久精品 | 免费网址在线观看 | 妖精视频永久在线入口 | 欧美99| 狠狠狠色丁香婷婷综合激情 | 日本吻胸捏胸激烈床戏视频 | 中文字幕亚洲一区二区三区 | 久久新地址 | 久久99国产一区二区三区 | 色秀视频在线观看全部 | 国产精品国产精品国产专区不卡 | 久久久久久一级毛片免费野外 | 五月天激情视频 | 91久久99热青草国产 | 中文在线观看免费视频 | 欧美高清成人 | 午夜伦理影院 | 一级一片免费看 | 99re久久资源最新地址 | 亚洲zscs综合网站 | 亚洲午夜在线播放 | 欧美久草在线 | 国产在线不卡 | 久久久久日韩精品免费观看网 | 四虎免费久久影院 | 91久久久久久久一区二区 | 亚州a | 日本高清午夜色wwwσ | 小视频在线观看免费 | 高清中文字幕免费观在线 | 免费免费啪视频在线 | 日本不卡一区二区三区在线观看 | 日本人videos18videosrrty | 午夜网|