色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Windows托盤氣球通知無效排查:Shell_NotifyIcon字段與系統(tǒng)策略

Windows托盤氣球通知無效排查:Shell_NotifyIcon字段與系統(tǒng)策略 托盤圖標出現(xiàn)在任務欄右下角右鍵菜單響應正常雙擊也能喚出主窗口唯獨調Shell_NotifyIcon發(fā)出去的那個氣球通知屏幕上一點動靜都沒有——而且返回值還是TRUE。這個現(xiàn)象我前后遇到過三四回每次根因都不一樣有一次是uFlags漏了NIF_INFO有一次是程序被改成后臺常駐方式導致圖標壓根沒掛到 explorer 上還有一次是測試機上把通知和操作的總開關關掉了。所以看到氣球通知無效這種描述先別急著翻代碼得先把無效這兩個字拆開判斷它到底屬于哪一類。這篇是寫給正在做 Windows 桌面端常駐托盤程序的人看的以 CWin32為主順帶把 C#WinForms和 WPF 封裝層上的等價坑一起擺出來。讀完至少能做到兩件事一是清楚Shell_NotifyIcon發(fā)氣泡時到底是哪幾個字段在起作用二是手上有一套能自己往下查的鏈路而不是對著屏幕干瞪眼改參數(shù)。氣球通知這東西看著只有幾行 API實際上牽扯到結構體版本、字符集、窗口消息循環(huán)、系統(tǒng)通知策略、會話隔離五個層面任何一層出問題表現(xiàn)都是沒反應所以分層定位比試錯重要得多。1. 三種不彈故障點完全不同1.1 圖標壓根沒進托盤區(qū)這是最容易被跳過的一步。很多人在排查氣泡的時候默認圖標都在那兒了肯定是氣泡的問題但實際情況里圖標顯示正常并不代表NIM_ADD成功過——有一種情況是圖標顯示出來了但那是上一次進程殘留的僵尸圖標鼠標劃過就消失點它也沒反應。真正判斷圖標是否屬于當前進程最簡單的辦法是把鼠標懸停在圖標上看szTip里設置的提示文字有沒有出現(xiàn)如果提示文字是空白的或者顯示的是別的程序的文字那基本可以確定當前進程根本沒加上圖標氣泡自然無從談起。NIM_ADD失敗的原因里hIcon為空是最常見的一個。Win32 里常見寫法是先LoadIcon或者LoadImage拿一個HICON再填進nid.hIcon。這里有個真實存在的坑如果這個HICON是通過CreateIconIndirect、CopyIcon這類函數(shù)動態(tài)生成的而代碼里又在NIM_ADD之后順手調了DestroyIcon托盤圖標會立刻變成一塊空白或者花屏。原因是 shell 并沒有把圖標數(shù)據(jù)拷貝走它只是持有了這個句柄你銷毀了它那邊就指向了一塊已經失效的內存。正確的釋放時機是NIM_DELETE之后再DestroyIcon順序不能反。還有一種更隱蔽的程序被注冊成了服務或者用計劃任務以不管用戶是否登錄都運行的方式啟動。這種進程運行在會話 0Session 0而會話 0 是沒有交互式桌面的Shell_NotifyIcon可能返回成功圖標卻永遠不可能出現(xiàn)在用戶眼前。判斷方法很簡單任務管理器里看這個進程屬于哪個會話如果不是當前登錄用戶的會話號那所有 UI 相關的 API 都是白搭。另外提一句Windows 11 的托盤區(qū)把默認圖標折疊進了溢出面板用戶不點開小箭頭是看不到的。這不是故障但排查時容易被誤判成圖標沒加進去先確認一下托盤設置里的隱藏的圖標菜單。1.2 圖標在氣泡死活不出來這一類才是標題里說的情況。此時NIM_ADD是成功的szTip能正常顯示右鍵菜單也能彈唯獨氣泡不出來。常見原因按出現(xiàn)頻率排下來大概是uFlags沒帶NIF_INFO、NIM_MODIFY之前圖標狀態(tài)已經丟了、szInfo為空字符串、系統(tǒng)通知開關被關閉、發(fā)送氣泡時消息循環(huán)處于阻塞狀態(tài)。uFlags這個問題我在代碼評審里見過不止一次。有人寫了一個UpdateTrayIcon()函數(shù)把NIF_ICON | NIF_MESSAGE | NIF_TIP全填上然后在這個函數(shù)末尾順手填了szInfo和szInfoTitle以為這樣氣泡就會跟著圖標一起更新。實際上Shell_NotifyIcon是嚴格按uFlags位掩碼來決定讀哪些字段的沒置NIF_INFO位szInfo那一段內存它連看都不看。同理dwInfoFlags的圖標類型、NIIF_NOSOUND這類標志也都只在NIF_INFO置位時才生效。還有一種是先刪后沒加。某些程序在響應WM_ENDSESSION或者顯示器的WM_DISPLAYCHANGE時會先NIM_DELETE再重新NIM_ADD如果中間某次NIM_ADD因為窗口句柄無效而失敗后續(xù)的NIM_MODIFY就會一直返回失敗氣泡當然也發(fā)不出來。所以我習慣把是否已添加做成一個顯式的狀態(tài)位任何一次NIM_ADD失敗都要記錄下來后續(xù)發(fā)氣泡前先檢查這個狀態(tài)。1.3 氣泡彈了但標題是空的或者全是亂碼嚴格來說這不算無效但它經常和無效混為一談因為用戶看到一片方塊或者空白會直接反饋通知沒顯示。亂碼的根因幾乎只有一個結構體用了 ANSI 版本而字符串傳的是寬字符或者反過來。NOTIFYICONDATA在 SDK 頭文件里是通過UNICODE宏展開成NOTIFYICONDATAW或NOTIFYICONDATAA的如果工程屬性里的字符集是使用多字節(jié)字符集而你代碼里寫的是L...編譯器要么報錯要么悄悄截斷最終szInfo里只有一個字符加個結尾。這個坑在遷移老項目時特別容易踩到。老工程當年是 MBCS后來為了支持多語言整體改成 Unicode結果某個自己封裝的托盤類里還留著char緩沖區(qū)和新結構體拼接編譯能過跑起來就是亂碼。定位辦法是直接看sizeof(NOTIFYICONDATA)的值Unicode 版本在 x64 下大概是 976 字節(jié)這個量級如果在調試器里看到cbSize明顯偏小那基本就是字符集或者結構體定義對不上。2. NOTIFYICONDATA 里決定氣泡生死的字段2.1 uFlags、szInfo、szInfoTitle 三者的聯(lián)動關系先把一段能用的代碼擺出來后面所有的討論都圍繞它展開。下面這段是添加圖標的初始化注意uFlags里沒有NIF_INFO因為添加階段不需要氣泡NOTIFYICONDATA nid { 0 }; nid.cbSize sizeof(NOTIFYICONDATA); nid.hWnd hMainWnd; nid.uID IDI_TRAY; nid.uFlags NIF_ICON | NIF_MESSAGE | NIF_TIP; nid.uCallbackMessage WM_TRAY_CALLBACK; nid.hIcon hTrayIcon; StringCchCopy(nid.szTip, ARRAYSIZE(nid.szTip), L常駐托盤工具); if (!Shell_NotifyIcon(NIM_ADD, nid)) { // 這里一定要留日志后面排查全靠它 }發(fā)氣泡是另一段獨立邏輯uFlags只保留NIF_INFObool ShowBalloon(HWND hWnd, UINT id, const wchar_t* title, const wchar_t* text, DWORD infoFlags) { NOTIFYICONDATA nid { 0 }; nid.cbSize sizeof(NOTIFYICONDATA); nid.hWnd hWnd; nid.uID id; nid.uFlags NIF_INFO; nid.dwInfoFlags infoFlags; StringCchCopy(nid.szInfoTitle, ARRAYSIZE(nid.szInfoTitle), title); StringCchCopy(nid.szInfo, ARRAYSIZE(nid.szInfo), text); return Shell_NotifyIcon(NIM_MODIFY, nid) ! FALSE; }這里有兩個細節(jié)值得說。第一NIM_MODIFY階段uFlags只寫NIF_INFO是完全正確的語義是這次我只改氣泡部分其它字段別動不需要把NIF_ICON再寫一遍。第二szInfo傳空字符串注意不是空指針是長度為 0 的字符串的語義是移除當前顯示的氣泡不是什么都不做。有些代碼在錯誤分支里填了個空字符串當兜底結果就是看起來什么都沒發(fā)生。字段長度也有硬上限szInfo是 256 個WCHARszInfoTitle是 64 個WCHAR都包含結尾的空字符。超長會被截斷用StringCchCopy這類安全函數(shù)能保證不出界但內容確實會丟。我見過標題寫了一長串路徑導致后面全被切掉的看起來像標題顯示不全其實是長度超限。2.2 cbSize、uVersion 與那個共用體的歷史包袱cbSize是所有NOTIFYICONDATA故障里最隱蔽的一個。這個字段的用途是讓 shell 知道調用方用的是哪個版本的結構體因為從 Windows 2000 到現(xiàn)在這個結構體加過好幾輪字段。寫sizeof(NOTIFYICONDATA)在正常情況下永遠是對的問題出在兩種場景一是工程引用了很老的第三方 SDK 頭文件結構體定義本身就缺字段sizeof算出來偏小二是用 C# 或其它語言手工定義StructLayout時字段漏了或者順序錯了。第二種場景我踩過。C# 里為了不依賴 WinForms 的NotifyIcon有人會自己DllImport一個Shell_NotifyIcon然后手寫一個NOTIFYICONDATA結構體。少寫一個guidItem或者把uTimeout的位置寫錯編譯一點問題沒有運行起來cbSize對不上NIM_ADD直接返回FALSE。這種情況在調試器里看一眼cbSize和預期值差多少基本就能定位。再說uVersion。NOTIFYICONDATA里uTimeout和uVersion是共用同一塊內存的union { UINT uTimeout; UINT uVersion; };也就是說你不能在同一次調用里既設超時又設版本號。設置版本要用NIM_SETVERSION把uVersion填成NOTIFYICON_VERSION_4這個動作會改變后續(xù)回調消息的編碼方式——lParam的低字是消息 ID高字是圖標 ID。很多人加了NIM_SETVERSION之后發(fā)現(xiàn)右鍵菜單不彈了就是因為回調處理還在按老格式解析lParam。所以這條命令不是加了更好而是加了就得改回調。NOTIFYICON_VERSION_4還有另一個副作用uTimeout被徹底忽略氣泡停留時長完全由系統(tǒng)的輔助功能設置決定。如果你有代碼依賴精確控制氣泡顯示 3 秒還是 10 秒那在 v4 下是做不到的。2.3 dwInfoFlags 里幾個會反向生效的標志dwInfoFlags決定氣泡左側那個小圖標的樣式常見取值是NIIF_NONE、NIIF_INFO、NIIF_WARNING、NIIF_ERROR、NIIF_USER。前四個都是系統(tǒng)內置圖標直接寫就行NIIF_USER則需要額外配合hBalloonIcon字段。這里有個真實的坑NIIF_USER置位但hBalloonIcon留空時不同 Windows 版本的處理不一致有的版本回退到hIcon有的版本干脆畫一個默認圖標還有的版本會導致整個氣泡不顯示。我現(xiàn)在的做法是要么不用NIIF_USER用就老老實實把hBalloonIcon填上別指望系統(tǒng)幫你兜底。另一個有意思的標志是NIIF_RESPECT_QUIET_TIMEWindows 7 引入的。置位之后如果系統(tǒng)處于安靜時間現(xiàn)在叫專注助手這條氣泡會被直接丟棄不是延遲顯示是丟棄。這個標志的設計初衷是尊重用戶不想被打擾的意愿但如果你的程序發(fā)的是關鍵提醒置了這個位就等于主動放棄了顯示機會。反過來如果你不置這個位系統(tǒng)在某些版本上仍然會按全局策略抑制橫幅——這一點各版本行為不完全一致所以不要用它來做能不能顯示的開關。NIIF_NOSOUND相對簡單加上就不響提示音。有個細節(jié)是它不影響氣泡本身的顯示只影響聲音所以別把它和靜音模式下氣泡不顯示混為一談。3. 代碼沒問題但屏幕沒反應系統(tǒng)層攔在哪3.1 通知總開關、專注助手與安靜時間這是排查時最容易漏掉的一層因為它不在你的代碼里而在用戶的機器上。Windows 10 之后系統(tǒng)設置里有一個通知和操作的總開關關掉之后所有應用的通知全部靜默下面還有按應用細分的開關以及專注助手的幾種模式關閉、僅優(yōu)先通知、僅鬧鐘。Shell_NotifyIcon發(fā)出的氣泡在 Windows 8 之后已經被系統(tǒng)當作通知來管理了所以它會完整地受這些開關影響。表現(xiàn)是Shell_NotifyIcon返回TRUE氣泡不出現(xiàn)通知中心里也找不到。這種情況你改一萬行代碼都沒用。排查手段是讓測試機恢復到默認狀態(tài)通知總開關打開、專注助手關閉、當前應用在通知列表里處于允許狀態(tài)。還有一點如果程序以管理員權限運行而系統(tǒng)設置里的通知是按應用配置的某些版本下管理員進程的通知配置和普通進程不是同一份表現(xiàn)就是普通權限下能彈、提權后不彈。這個差異在不同系統(tǒng)版本上表現(xiàn)不一致我的做法是測試矩陣里固定包含普通權限和管理員權限兩行別只測一種。老系統(tǒng)上還有一個注冊表開關HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced下的EnableBalloonTips值為 0 時禁用氣球提示。這個鍵在新系統(tǒng)上是否仍然生效取決于版本但在 Windows 7 時代它是標準的關閉方式排查老環(huán)境時值得看一眼。組策略里也有對應的關閉通知氣球提示項域環(huán)境下的機器可能被統(tǒng)一下發(fā)。3.2 會話與用戶身份Session 0 和 RunAs 的死角前面提過會話 0 的問題這里展開說。Windows 的服務宿主機制決定了服務進程運行在會話 0那是一個沒有交互式桌面的獨立會話。任何在會話 0 里調用的 UI 相關 API包括Shell_NotifyIcon、MessageBox、CreateWindow要么失敗要么創(chuàng)建一個用戶永遠看不到的窗口。這個問題在實際項目里通常表現(xiàn)為開發(fā)機上好好的裝到客戶機上就沒通知。區(qū)別在于開發(fā)機是雙擊 exe 運行的客戶機上是通過服務或者計劃任務啟動的。定位方法是在任務管理器里加一列會話 ID看進程對應的數(shù)字是不是和當前登錄用戶一致。如果不一致那問題不在代碼在于部署方式——要么改成用戶登錄后自啟動要么用會話隔離機制把 UI 部分拆成一個運行在用戶會話里的獨立進程。還有一種情況是以另一個用戶身份運行比如右鍵以其他用戶身份運行或者用憑據(jù)管理器啟動。這時圖標會加到那個用戶的托盤里當前登錄用戶看不到但那個用戶如果同時在線快速用戶切換在他自己的桌面里是能看到圖標的?,F(xiàn)象就是我這邊沒圖標但換個賬號登錄就有了很容易被誤判成偶發(fā) bug。3.3 Windows 8 之后氣球改頭換面成 Toast這條屬于知道就行不知道會繞遠路的范疇。從 Windows 8 開始Shell_NotifyIcon發(fā)出的氣球通知在視覺上已經變成了 toast 樣式——從屏幕右下角滑入、停留幾秒、然后收進通知中心。接口沒變樣式變了。這個變化帶來兩個實際影響。第一通知中心會成為這些氣泡的歸檔地用戶在通知中心里能看到歷史消息這意味著重復發(fā)同一條消息的行為和老系統(tǒng)不一樣了老系統(tǒng)上重復發(fā)會不斷彈新的新系統(tǒng)上可能出現(xiàn)合并或者覆蓋。第二某些系統(tǒng)版本上如果程序沒有設置AppUserModelID通知在系統(tǒng)里的歸屬會是一個默認的宿主表現(xiàn)是通知列表里看不到你的應用名用戶在設置里想允許你的通知都找不到對應條目。設置AppUserModelID的 API 是SetCurrentProcessExplicitAppUserModelID在進程啟動早期調用。如果對通知的可靠性要求比較高其實可以考慮直接走 Toast 通知那套接口代價是需要注冊快捷方式、需要處理激活回調工程復雜度上一個臺階。托盤氣球勝在簡單二十行代碼就能跑Toast 勝在可控能拿到點擊、能進通知中心歸檔、能被用戶精細管理。選哪個取決于你的通知是順手提示一下還是業(yè)務流程的一環(huán)。4. 一條能自己走完的排查鏈路4.1 用三十行最小工程把業(yè)務代碼摘出去我處理這類問題的固定第一步是新建一個空的 Win32 工程只保留一個隱藏主窗口、一個托盤圖標、一個定時器定時器每三秒發(fā)一次氣泡。這個工程大概三十行寫完不超過十分鐘。之所以要先做這一步是因為在真實項目里氣泡不顯示可能是業(yè)務邏輯、線程調度、窗口生命周期三者疊加出來的你直接在里面改參數(shù)改一次跑一次變量太多判斷不了哪個改動起了作用。最小工程的骨架大致是這樣LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_CREATE: AddTrayIcon(hWnd); SetTimer(hWnd, TIMER_BALLOON, 3000, nullptr); return 0; case WM_TIMER: if (wParam TIMER_BALLOON) { ShowBalloon(hWnd, IDI_TRAY, L測試標題, L這是一條測試氣泡, NIIF_INFO); } return 0; case WM_DESTROY: RemoveTrayIcon(hWnd); PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wParam, lParam); }如果這個最小工程能彈氣泡說明 API 用法和系統(tǒng)環(huán)境都沒問題問題在你的業(yè)務代碼里如果彈不出來說明問題在環(huán)境或者調用方式上接下來往系統(tǒng)層查。這一步能省掉一半的排查時間。4.2 返回值、窗口消息、監(jiān)視工具三處取證最小工程也不彈的時候取證要分三路走。第一路看返回值。Shell_NotifyIcon返回FALSE說明 shell 明確拒絕了這時基本可以鎖定字段錯誤cbSize不對、hWnd無效、uID沖突。返回TRUE但無顯示說明接收端沒問題問題在展示端系統(tǒng)策略、會話、桌面可見性。這兩條分支的排查方向完全相反所以返回值必須看。第二路看窗口消息。如果要做氣泡點擊響應uCallbackMessage指定的消息會在氣泡被點擊時發(fā)到你的窗口。用一個能抓窗口消息的工具掛在目標窗口上觀察發(fā)氣泡前后有沒有WM_USER范圍內的消息流動。這一步主要是確認 shell 到底有沒有收到請求。第三路看系統(tǒng)狀態(tài)。通知設置、專注助手、會話 ID、是否提權這四項各花一分鐘確認比讀一天文檔有用。我現(xiàn)在的習慣是在程序的關于頁面里放一個隱藏的診斷入口一鍵打印這幾項狀態(tài)客戶反饋問題時讓他截個圖能省掉好幾輪來回?,F(xiàn)象優(yōu)先懷疑驗證方式NIM_ADD返回 FALSEcbSize、hIcon為空、窗口句柄無效調試器里看cbSize與sizeof是否一致圖標在氣泡無返回值 TRUEuFlags漏NIF_INFO斷點檢查發(fā)送時的uFlags值圖標不在氣泡無會話 0、圖標句柄被提前釋放任務管理器看會話 ID檢查DestroyIcon時機氣泡出但標題空白字符集不匹配看sizeof(NOTIFYICONDATA)與工程字符集設置時好時壞消息循環(huán)被阻塞、定時器被搶占檢查主線程是否有長耗時同步操作特定機器必現(xiàn)通知開關、專注助手、組策略重置通知設置為默認后復測4.3 把什么時候不彈記錄成日志這一點聽起來平淡但它決定了后續(xù)排查是幾天還是幾小時。我在托盤模塊里加了一組固定的日志點NIM_ADD的結果、NIM_DELETE的結果、每次發(fā)氣泡前的uFlags和dwInfoFlags值、發(fā)氣泡的返回值、當前進程的會話 ID 和是否提權。這些信息加起來不到二十行代碼但客戶現(xiàn)場出問題時看一眼日志就能把范圍縮小到一兩個方向。有個細節(jié)日志里不要把szInfo全文打進去用戶數(shù)據(jù)可能很長也可能包含不該落盤的內容打個長度和標題就夠了。5. 托管封裝層WinForms 與 WPF 的等價坑5.1 NotifyIcon.ShowBalloonTip 的前置條件C# 的 WinForms 里NotifyIcon類把Shell_NotifyIcon包了一層接口看著簡單坑一樣不少。ShowBalloonTip(int timeout)要能生效至少得滿足三個條件Visible為true、Icon不為null、圖標已經被系統(tǒng)接受。第一個條件是硬性的Visible false時調ShowBalloonTip不拋異常也不顯示最容易漏。第二個條件很多人以為只要給Icon賦值就行實際上如果你是從資源文件動態(tài)加載圖標流用完順手把StreamDispose掉了Icon對象的內部句柄可能已經失效表現(xiàn)就是托盤圖標顯示成一塊空白氣泡也跟著不顯示。第三個條件在窗體生命周期早期容易出問題。在Form_Load里立刻調ShowBalloonTip有些機器上不生效因為這時窗口句柄剛創(chuàng)建托盤圖標還沒真正掛上去。穩(wěn)妥做法是Load之后用BeginInvoke推遲到消息隊列下一輪再調或者在Shown事件里調。timeout參數(shù)在 Vista 之后基本被忽略了實際時長由系統(tǒng)的輔助功能設置決定。這一點和老系統(tǒng)不一樣如果產品文檔里寫了氣泡顯示 5 秒最好改成約 5 秒實際由系統(tǒng)設置決定免得后面被當成 bug 提。5.2 消息泵被堵住時氣泡會遲到Shell_NotifyIcon內部是通過窗口消息和任務欄通信的這意味著它依賴調用線程的消息循環(huán)。如果主線程正在跑一個長耗時同步任務比如讀一個大文件、等一個網(wǎng)絡請求、跑一段密集計算那么即使你在另一個線程里調ShowBalloonTip調用也可能被卡住直到主線程的消息泵重新轉起來?,F(xiàn)象很有迷惑性日志顯示已發(fā)送氣泡但用戶是在幾秒甚至幾十秒之后才看到或者干脆看不到因為已經過了時效。這類問題在后臺任務完成時彈通知的場景里特別常見因為后臺任務完成的時刻主線程往往正在刷新界面。處理辦法是有的把耗時任務放到后臺線程主線程只負責 UI或者在不依賴NotifyIcon對象的場景下用一個獨立的隱藏窗口在自己的線程里跑消息循環(huán)來處理托盤消息。后者工程量大些但如果托盤邏輯要脫離主窗口獨立存活比如主窗口可以關閉但程序不退出這個結構反而更清晰。WPF 這邊沒有內置的托盤圖標控件社區(qū)里常見的做法是引用 WinForms 的NotifyIcon或者用第三方庫。第三方庫如果自己實現(xiàn)了Shell_NotifyIcon的互操作那前面說的cbSize、uFlags、字符集三件事依然適用換語言不換原理。選庫的時候可以看一眼它有沒有處理NOTIFYICON_VERSION_4沒處理的話右鍵菜單的坐標計算在某些機器上會偏。6. 把這套東西做成不容易再出問題的結構6.1 用一個帶狀態(tài)位的發(fā)送函數(shù)收口在項目里我最后的做法是把托盤的添加刪除發(fā)氣泡三個動作集中在一個小模塊里模塊內部維護一個bool added狀態(tài)位任何一次NIM_ADD成功才置位NIM_DELETE后清零。發(fā)氣泡的入口函數(shù)第一件事就是檢查這個狀態(tài)位沒置位就先嘗試添加一次。這樣不管上層怎么調用都不會出現(xiàn)圖標沒了還在發(fā)氣泡的靜默失敗。同時這個模塊對外只暴露一個ShowBalloon(title, text, level)函數(shù)level是個枚舉映射到NIIF_INFO、NIIF_WARNING、NIIF_ERROR。這樣上層不需要知道dwInfoFlags的存在后面如果要換實現(xiàn)比如換成 Toast 通知改動面只在一個文件里。還有一個小設計發(fā)氣泡函數(shù)返回一個枚舉區(qū)分發(fā)送成功、發(fā)送失敗、系統(tǒng)策略可能抑制三種結果。第三種判斷不了那么準可以根據(jù)會話 ID 和通知開關做個粗略推斷。有這個返回值上層在做關鍵提醒時就能選擇走別的通道比如閃爍任務欄、改托盤圖標顏色而不是把所有希望都押在氣泡上。6.2 退出時的清理和僵尸圖標NIM_DELETE一定要在窗口銷毀之前調而且要用和NIM_ADD完全相同的hWnd和uID。我見過填錯uID導致圖標刪不掉的情況表現(xiàn)是程序退出后圖標還掛在那兒鼠標劃過才消失。這不僅僅是觀感問題——殘留的圖標會占用那個uID下次啟動如果復用同一個 ID行為可能不可預期。另一個清理時機是WM_ENDSESSION系統(tǒng)關機或者注銷時程序不一定能走完正常的退出流程。在這個消息里補一次NIM_DELETE能減少殘留。還有崩潰場景進程直接掛掉不會執(zhí)行任何清理代碼圖標一定殘留這個沒辦法只能靠系統(tǒng)自己回收。如果程序支持多實例uID的分配要小心。兩個實例用同一個hWnd和uID是不可能的hWnd天然不同但如果用了自己生成的guidItem標識兩個實例可能會互相覆蓋。多實例場景建議用單實例機制直接禁掉或者在guidItem里加入進程相關的區(qū)分信息。6.3 版本差異下的降級策略不同 Windows 版本對氣泡的處理差異實際項目里沒必要逐一適配但有三條底線值得守住。第一條不要在NIM_ADD的時候一次性把NIF_INFO也帶上試圖順便彈個氣泡添加和修改分成兩次調用邏輯清晰出問題也好定位。第二條NIM_SETVERSION只在確實需要 v4 的回調格式時才調調了就同步改回調解析邏輯兩者必須一起改。第三條uTimeout不要依賴需要多停留一會兒的需求用重復發(fā)送或者改成帶交互的通知來實現(xiàn)更好別指望這個字段。我在實際項目里的體會是托盤氣泡這個功能的問題密度和代碼量完全不成比例——二十行代碼的功能可能需要幾百行的排查經驗來兜底。所以能把它封裝干凈就封裝干凈別讓業(yè)務邏輯直接碰NOTIFYICONDATA后面換人維護或者系統(tǒng)升級改一個文件就夠了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
妇女一区二区三区| 亚洲欧美内射| 精品乱子一区二区三区99| 欧美九9 9 9| 伊人久久国产免费观看视频| 亚洲大色堂| 日韩不卡网操逼中文字幕日韩| 超硑97精品| 精品无码久久久久| 久久久久久九九九九| 高清国产无码av| 三级特黄60分钟播放| 日韩黄色一区二区三区| 久久久影院| 老熟女熟妇| 麻豆黄四叶草网站| 亚洲影视第一页| 九九热在线视频| 久久黄片国产一区二区| 日本亚洲熟女视频| 丰满少妇人妻久久久久久| 亚洲精品三| 中文字幕97| 久久老子无码午夜伦不卡| 日韩 欧美 校园一区| 色99视频| 亚洲天堂欧美| 性欧美999| 东京热,男人的天堂| 射久久| 精品九区| 国产精品久久久久久高清无码免费看 | 岛园激情| 中文字幕精品丝袜| 日本 免费 一区二区三区 久久香蕉| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 丁香五月婷婷五月| 国产亚洲精品农村妇女| 97资源制服丝袜| 成人贴图日韩欧美| 性爱1区| 火箭成精品视频884必出精品| 很很很很操| 91天堂| 国产绿奴视频在线观看| 天美传媒国产原创中文字幕亚洲欧美另类| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 国产精品成人久久一区二区三区| 久/久精品99看9| 91爱看| 污色区网站| 精品超碰国产| 久湿久久| 美女尤物人人操| 亚洲日韩av一区二区三区百合| 欧美色图另类图片| 婷婷五月天丁香花| WWW4虎| 亚洲一区二区精品福利| 欧美日本中字另类在线| 秋霞免费无码视频日韩A片| 久久人妻一区二区三区高清| 澳门人妻久久| 欧美日日夜夜| 欧美最婬乱婬爆婬性视频| 怡红院一区二区熟女人妻| 日本高清有码网址视频| 日本操BAV| 黄色小视频日本txt| av一区二区三区不卡| 天天干天天操天天操夜夜操天天操 | 午夜.DJ高清在线观看免费7 | 日韩av乱伦| 亚洲九月丁香| 久久首页| 深夜激情无码| 国产吞精a级片激情电影| 综合影院永久入口国产| 亚洲加勒比| 超碰人妻久久| 欧美一级黄色免费专区| 亚洲av国产av综合av卡| 97最新在线播放视频| 免费看日本操逼视频| 亚洲天堂男人在线| 91高潮喷水美女| 国产2.3.4区| 成人26uuu| 日本国产欧美一区三区二区| 亚洲各类熟们中文字幕| 亚州色站 日韩电影| 亚洲精品美女操逼| 亚洲综合有码| 国产传媒午夜理伦精品| 精品久久青青草| 久久超碰大香蕉| av在线人气| 天天操熟妇| 天堂无码| 久久久人体| 大香蕉在线SuP| a亚洲欧美色欲| 免费αV在线视频| 99热成人| 亚洲极品| 亚洲欧洲日韩天堂av| 嗯嗯啊中文字幕| 自拍第一页| 激情五月综合开心五月| 日韩午夜啪啪视频| A男人的天堂| 色臀AV| JIZZJIZZ国产精品喷水| 欧美91在线+|+欧美| 在线97视频| AV天天综合| 综合色好色| 高清国产精品福利网站| 强奸乱伦中文字幕AV| 国产精品色哟哟| 97视频播放| 日本三级日本三级99| 99久久久无码| 电家庭影院午夜69久久夜色精品国产69乱| 免费亚洲国产精品久久一区| 久久久久99999| 伊人一级免费黄片| 人妻99p| 欧美久久伊人| 色网在线视频观看免费| 亚洲素人网| 性夜影院爽黄A爽免费动漫| 激情丁香五月| 97资源久久| 婷婷伊人| 国产伦精品| 色玖玖| 国产60页| 欧美天堂超碰97| 日本欧美韩国国产在线| 黄色不卡视频| www.色婷婷色综合| 欧中美三级一区二区三区| 一起草av| 久久视频,这里只有精品| 精品午夜福利国产一区二区在线观看| 很很很很操| A片三级无码| 欧美日韩一二三| 男人天堂.AB| 久久天天艹| wuyechaopeng| 色香阁在线| 日本一区二区三区免费观看| 国产精品不卡高清在线观看| 色妇91| 99视频只有精品| 免费1级a做爰片观看| 蜜臀一二三区| 午夜舔阴达高潮视频免费看| 国产有码一区| 东京热激情视频一二三区| 狠狠久久手机视频精品| 人人妻人人澡人人爽久久av| 刺激性视频黄页| 热99这里只有精品| 国产精品久久久久久久AV大片| 国产精品电影推荐| 激情四射婷婷四五月天| 亚洲砖码砖专无区2023| 天天狠操| www.久久制服糖| 国产品精品自在在线午夜免费| 后入式999| 青青草视频导航官网| 狠狠色婷婷| 手机在线A片| 天天综合网网欲色| 亚洲Av诱惑| 欲色影视综合吧| 99热免费| 97免费在线视频在线观看| 日本欧美国内在线| 粉嫩在线一区二区懂色| www狠狠| 日韩亚洲精品一区二区| 淫淫总合网| 欧美日韩精品久久久久东北老熟妇| 国产Av超碰| www.五月天| 色哟哟 日韩精品| 久久9精品网站| 青春草莓视频在线观看网址| 久久婷婷一区| 久久一级无码精品毛片6| 欲射影视| 夜间福利片1000无码| 青青欧洲黑| 99re视频在线播放青草| 校园春色亚洲色图| 97在线国产精品| 日韩极品无码B| 大香蕉天天看妹子| 97爱啪| 东京热男人的天堂| 97碰| 欧成人在线| 操逼操网| 欧美色另类| 日韩成人性日韩成人性爱视频在线免费观看| 9999九九九久久久| 大香蕉久| 香蕉久久国产AV一区二区| AV无码久久久精品| 99久久久久| 99国产在线 精品 视频| 在线观看日韩av不卡| 国产女性无套 免费观看| 国产精品自在线发布| 97在线视频观看网站| 中文字幕乱在线伦视频中文字幕乱码在线 | 亚州宗合另类| 欧美少妇性乱| 伊人96在线| 亚洲精品欧洲精品| 男人天堂站| 夜夜狼人妻| 亚洲av热热色| 91久久久久久久| 90后后入| 日韩精品中文字幕人妻| 白丝jkav| 超碰视97中文| 东北女人高潮视频| 亚欧免费观看视频| 国产成人99久久亚洲综合| 天天草夜夜草高潮片| 黄色网址在线免费观看| 狠狠久久亚洲欧美专区| 在线女人91| 亚洲精品欧洲精品| 亚洲自拍青操视频| 99热伊人| 免费久久一级毛片大黄| 国产亚洲精品玖玖玖在线观看| 爱我干综合| 夜夜嗨一区二区| 麻豆久久视频在线地址| 神马久久啊啊| 欲香欲色综合天天伊人| 99久久亚洲精品无码毛片潘甜甜| 人人艹亚洲| 日韩性爱高清免费视频| 日日夜夜狠狠| 好爽视频在线观看视频| 呻吟 欧美 日本 中出| 热久久99999| 亚洲人成色9999精品久久| 97精品久久| 精品九九国产无码| www.大香| 国产日韩精品人妻久久久久色欲网站| 亚洲av成人精品一区| 久久超碰网| 91女优在线观看| 91操熟女视频| 粉嫩在线一区二区懂色| 福利在线观看一区二区| 天综合网| 天天摸天天舔天天操| 99蜜桃臀亚洲成人在线观看| 黄色av一区二区在线| 久久大香蕉97| 欧美嗯啊……在线观看视频免费| 91久久18禁| 婷婷香蕉欧美在线一区二区三区| 九九国产热| 97欧美久久久久久久| 亚洲色 国产 欧美 日韩| 综合久久久久久久综合网| 亚洲欧美高清无码| 婷婷色综合欧美日韩| 自拍盗摄一区| 日韩精品电影| 91亚洲综合| 日韩乱伦影音先锋| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 91搡老女人老妇女老熟女歌词翻译| 先锋激情∨在线视频播放| 国精品一区二区三| 五十路熟女,国产欧美精品区一区二区三区| 久久精品视频在线观看| 精品久久大胆人体| 久久亚洲AV无码白度| 99这里都是精品| 亚洲欧美成人网站AAA| 国产精品白丝| 精品78| 精品三级在线专区| 大香蕉黄色一级片免费看| 青娱乐国产盛宴视频| 九九黄色网| 亚州国产精品乱| 成人婷婷丁香| 91网站在线播放| 99国产在线绯色一区| 啊啊啊好湿国产一二| 91粉嫩萝控精品福利网站_精品影音先锋国| 亚洲最新a在线观看| 自怕偷自怕亚洲精品| 精品人体无圣光凹凸| 囯产乱伦一区二区三女 | 国产亚洲女v在线观看| 天堂无码| 国产在线能看的你懂的| 久久人妻丝袜一区二区三| 精品二区三四区五电影| 男啪女色黄无遮挡免费观看| 久久综合女优| 国产又大又粗又长视频在线| 羞涩视频| 丁香五月成人| 乱人乱色一区二区三区免费 | 999岛国大片| 九九英色视频| 尹人免费观看视频在线| 青青操在线亚洲视频观看欧美在线| 火箭成精品视频884必出精品| 99久久久久| 国产熟女高潮一区二区三区| 中国国国产一级特黄毛片| 99色色网| 日日天天久久啊啊aaa| 天天综合,91入口| 久久国产成人精品国产成人亚洲| 日本综合色图| 日韩久草| 97色97干| 九九黄色网| 97在线观看| 日韩/97| 自拍偷拍国产欧美日韩韩| 极品销魂美女一区二区 | 中文字幕在在线观看网站| 极品尤物自安慰| 欧美性生活男人的天堂| 老熟妇乱轮| 狠狠色五月亚洲91| 色综合 加勒比| 视频在线观看一二三区| 少妇 综合| 人人透人人操| 狠狠综合网| 九九久久综合| AV丝袜少妇| 亚洲色欲天天人妻无码系列专区| 日本日皮视频逼| 色五月激情网| 久久免费看高潮毛片韩国| 加勒比av中文| 人妻精品一区二区| 久久精品久| 午夜一级免费毛片| 五月丁香婷婷色| 人妻人人澡人人爽人人| 粉嫩av一区二区三区天美传媒| 亚洲 暴爽 AV人人爽日日碰| www.久久最新地址| 嗯嗯啊啊操死我| 少妇色欲综合网2| 亚洲一卡二卡在线免费| 国产精品一级特黄aaa大片在线观看| 天天日天天干天天整| 老鸭窝在线视频播放| 欧洲精品二区| 台湾肥佬网一区二区三区| 97中文字幕色| 久热伊人| 超碰在线观看av不卡| 亚洲综合激情五月久久| 欧美亚洲宗合色性图| 男人午夜天堂| 日本女人操逼| 少妇人妻激情四射| 亚洲自拍偷拍视频在线| 伊人天天久久动态图| 亚洲一卡2卡3卡4卡乱码网站| 日本天天人人狠狠在线日美女 | 国产精品分类在线观看| 国产丰满熟夫69mpp| 99热日| 日韩综合成人免费视频| 9久久久久| 国产丝袜欧美在线视频| 久久av色| 欧美福利视频啊啊啊啊| 国产欧美精品日韩区二区麻豆天美| 97午夜剧场日韩| 小说区 图片区色 综合区| 精品人人插人人操| 久操影视| AA级电影三区| 一区久久久二区| 96久久久精品| 伊人丁香五月婷婷| 草蕉影视亚洲无码| 天天看天天日| 911粉嫩人妻| 国产精品午夜福利视频| 国产精品区在线12p| 欧美专区第一页| 怡红院成人视频| 久草网站免费在线观看| 久久婷婷亚洲欧| 国产精品黄色三级av| 在线视频五十市| 1769一区| 色色操| 国产熟女一区二区| 久久久久久亚洲精品中文字幕人妻| 麻豆AV一区二区天美传媒| 91麻豆va国产精品| 九九九999久久久网站| 黄片不用下载在线观看| 射综合网| 伊人久久大香线综合无码| 粉嫩av平台| 男人的天堂在线2| 黄片免费视频2019| 久久久神马影院| 日韩欧美成人性爱在线| 超碰综合97在线| 日日操天天操| 51国产午夜精品视频| 亚洲综合99999| 97欧美精品综合| 中文乱码字字幕在线第5页| ,国产乱人伦精品一区二区三区| 神马久久久久| 久久精品99久久久久久| 芊芊操逼视频无码| 丝袜 中出 制服 人妻 美腿 中文字幕| 99热综合| 国产精品4p在线观看| 加勒比久久av| 免費人妻夜夜爽天天爽爽一区| 嗯啊视频免费在线观看| 一区二区三| 97久久国产精品| 九九九久千久久激情蜜桃在线看| 欧美 亚洲 偷拍自拍| 国产精品99精品视频网站| 超碰社区97| 综合网亚| 天天干人妇| 99久久久无码精品国产人| 97中文字幕一区| 少妇天堂网络| 性爱乱伦视频免费| 97在线视频网站| 天天日天天操VV| 台欧久久精品视频| 伦理第一页| 欧美日韩天堂| 高清无码在线播放网站| 国产又黄又爽又刺激久久久久久| 亚洲情色五月天 | 不卡一区二区日本视频| 国产精品呦一区二区三区| 欧美亚洲色图另类国产| 99热综合| 女同性恋久久| 99亚洲天堂| 唐山老熟妇露脸啪啪叫| 9色国产精品一区粉嫩| 97爱碰| 久久AV色| 中亚精品极乱| 校园春色美腿丝袜 | 老司机免费视频在线91| 欲色综合| 97视频免费| 91高跟美女在线播放| 久久久久久久人妻| 久久婷婷国产一区二区色| 自拍视频大全亚洲专媒视频/一区二区三区| 亚洲色图A| 久久激情视频| 狠久久| 最新中文字幕在线亚洲| 熟女丝袜视频| 亚洲黄色电影| 久99视频| 天天影视色香欲综合网小说| 先锋色眉乱伦资源| 亚欧国产无码精品在线| 久久九九一区二区三区成人| 亚洲少妇在线观看| 久久专区| 人人操人人操人人操人人操人人操人人人11.CM | 91国产大片| 爱妻综合网| 久久精品国产97欧美精品亚洲 | 亚州久久9| 久久久久幕乱码| 精品对白久久不卡| 少妇免费视频| 免费在线黄片视频| 五月天激情网站| 无码欧美有限公司| 美女丝袜激情小说| 97这里只有精品| 香蕉黄色一级视频| 日韩成人综合网| 91色噜噜狠狠| 精品人妻一区二区三区蜜桃视频| 97在线观看免费视频| 97欧美性爱| 校园春色综合| 五十路人妻在线| 成人久久久| 超碰成人最新最好看| 殴美性色a级欧美| 91碰碰| 国产日韩无码一区二区三区久久区| 天天综合网~91| 中文字幕一区二区日韩网| 91足交| 国产精品国产自产拍高清AV| 色综合99999| 美女久久久| 欧美精品久久久久久久久88| av天天在线观看| 美熟女逼导航AV操逼| 亚洲乱妇p22| 强奸乱伦大香蕉网| 久久国产精品,久久国产| 中文字幕免费看| 国产中出内射一区二区| www99热| 国产精品午夜福利视频| 国产精品直播在线观看直播| 日本三级大片| 天天综合网合集91| 强奸乱伦AV网址| 久操大香蕉手机视频在线看| 亚洲色棕合| 国产隔壁老王影院在线| 91亚洲不卡一区| 亚洲资源一区| 色香色欲天天综合网天天来吧| 久久国产精品,久久国产| 不卡二三区人妻少妇| 中文字幕一区二区日韩网| 久思思热视频在线观看| 性91| 久久婷婷综合国际产色怕| 精品中文日韩字幕视频| 日日黄色三级网站| 2010男人的天堂| 18精品一二区| 99无码视频| 大肥女高潮bbwbbwhd视频| 国产精品另类| 国产精品亚洲色婷婷久久久| 婷婷丁香一区二区三区| 偷拍欧美综合| 一级黄色性爱裸体视频| 最新无码国产| 熟妇综合一区二区三区| 国产AV高清AV无码| 亚州再线| 青娱乐福利99| 嗯嗯嗯不要不要免费视频| 天美传媒精品久久视频| 亚洲成人久久美女| 色噜噜人妻av中文字幕| 8050无码八戒| 91激情国产| 日韩国产欧美伦理在线| 亚洲Av噜噜一区二区三区妖精| 操婢日韩| 欧美日动态视频| 天天操人人操狠狠插| 麻豆AV96熟妇人妻| 亚洲无线码欧洲精品区别| 中文啪啪视频| 果冻传媒A片麻豆熟妇人妻| 最新国产精品久久精品| 丰满少妇精品一区二区| 丁香婷婷大香蕉| 東南亚性呦成人伦理资源在线视频| 日本熟女免费視颖| 99re在线精品78| 亚洲av无线观看| 午夜后入| 国产精品嫩草影院免费| 99国产精品自在自在| 6080YYY午夜理论片在线观看| 黑丝91视频| 翔田千里无码一区| 亚洲少妇色图自慰直播| 超碰国产精品无码| 丰满人妻一区二区中文| 亚洲AV无码成人精品久久| 国产97在线播放| 久久久无码国精品无码三区三区| 成人线上超碰| 1二区9| 色操逼网| 亚洲激情深爱文学小说网站| 丁香婷婷九月| 欧美日韩中文字幕人妻| 秋霞男人网| 啪啪资源网| 91老妇女| 亚洲。日韩。欧美| 99re公开精品免费视频| av橘色网站| 欧美日韩m| 亚洲小电影免费涩涩成人在线高清 | 草草草视频| 97网址www| 很黄很色的视频在线观看| 91九色丰满高潮| 禁片 高清 在线观看视频网站| 国产精品不卡av免费在线观看| 性性久久| 香蕉久久国产AV一区二区| 精品无码秘 人妻一区二区| 久久久熟妇熟女国产| 国产精品自在自拍视频| 人妻欧美| 天天插天天操天天摸天天射天天看| 亚洲天堂无码| 在线视频97| 超碰久久网| 日韩精品区二区三区不卡| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 九九九九九九九九九九九蜜桃| 99亚洲精品| 国模私拍一区二区三区神乳| 婷婷九月丁香| 亚洲精品819| 成人av性爱电影在线观看| 一区二区三区四区在线不卡| 久久99热这里只频精品6学生| 麻豆久久精品亚洲精品88| 亭亭在线资源| 人妻在线臀日韩| 激情五月天社区| 国产无马在线| 情色大香蕉| 91性感网站| 亚洲av在线免费观看| 99性爱在线观看| 91情色| 后入式福利| 色综和网| 久久色激情一区二区三区| 国产黄色 A 片免费看| 亚洲国产精品无码AV久久| 日本黄色XXX| 欧美一区二区在线资源| 五月丁香激情啪啪| 金莲网址| 啊啊啊爽爽| 乱色老一区二区三区的观看方式| 日韩av熟女一区二区三区成人| 亚洲午夜AV| 欧美一级美片在线观看免费| 猛猛干| 一二三四区操操Av| 99久在线精品99re8a| 五月天色五月| 97综合在线观看| www.人人摸在线视频| 天天色综合天天操| 一本大道不卡一二三区| 色香欲天天天天综合色| 最新啪啪视频| 中国一级αV| 日韩图区 偷拍| 啊啊啊啊啊啊啊在线| 插欧洲美女欧美精品| 国产熟女自拍| 久久超碰爱| 精品亚洲成人免费在线| 欧美爱国产综合、| 天堂无码精品国产久| 黄色片A级一区二区三区| 97色综合中文网| 99色在线| 欧美综合自拍亚洲综合图| 婷婷综合| 免费操逼视频下载| 蜜乳AV网址| 色区97| 你草精品在线视频| 真实高潮91| 欧洲天天在线| 怡红院视频在线| 九色97| 污啪啪啪视频| 全球成人中文在线| 亚洲成熟国产精品美女| 国精精品无码一二三区水多多| www.伪伪| 精品视频免费在线一区| 天天草夜夜草高潮片| 五月天久久综合网| 久久久久亚洲av综合波多野制衣| 狠狠色噜噜狠狠狠狠2018| a亚洲欧美色欲| 国产拍偷精品网站| 日本乱人伦片中文三区| 国产精品懂色tv影视免费观看 | 亚洲图片另类| 久久久久久久精| 国产女大学生AV| 天天射天天操天天干天天吃2018| 免费精品国偷自产在线在线| 欧美九九九九九| 亚州一区二区| 天美传媒AV在线| 亚洲国产成人精品女人久久久| 亚洲 暴爽 AV人人爽日日碰| 一级性爱视频免费在线| 午夜视频久久久久一区| 久操网无码在线| 无码人妻丰满热妇又大又粗| 国产免费一区在线观看| 久热无码| 91亚洲精品青草| 91日日| 亚洲电影91| 日韩无码服务区| 欧美综合1性辶| 大色综合| 亚洲欧洲中文日韩女优乱码| 狠狠中文字幕| 乱伦系列一区二区| 伊人成人中文字幕久久网| 亚洲AV无码乱码在线观看性色| 高清无码网址| 96AV精品| 色五月第四色| 国产白领连续中出在线播放| 超碰97在线中文| 欧美丝袜91| 亚洲天天更新| 十八禁视频一区二区| 午夜偷拍久久熟女| 日本免费中文一区二区三区四区| 东北女人av| 久久久不卡区一区二区三区久久久| 蜜乳av一区二区三区四区不卡| 深夜激情| 台湾一区国产高清在线| 中文字幕交换人妻| www.夜夜操| 99热66| 超碰97玖玖爱| 中文字幕人乱码中文字的预防方法| 九九九久| 成人五级久久| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美|91色综合| 麻豆黄色五月天| 春色校园综合网| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 色情五月丁香| 久久人人爽爽爽人久久久| 久久久久久久久久久999| 日日夜夜噜| 国产AV线| 人妻精品免费一二三区| 无码聚合| 熟妇人妻一区二区| 中文字幕熟女人妻丝袜丝| 久久精品熟女亚洲AV麻豆软件| 五月亭亭六月丁香| 激情婷婷五月天| 97综合在线观看| 久久久久久久综合,国产| 亚洲加勒比| 啪啪啪精品视频| 日韩有码免费视频| 亚洲鸥美色图| 网站A V在线| 日韩性爱再线视频| AND人妻系列| 亚洲区 欧美区| 亚洲电影中字一区二区| 亚洲激情av| 丰满精品人妻少妇久久字幕| 美女91AV| 99热只有这里有精品| 欧美大香蕉97| 综合情欲网| 国产一区二区三区免费视频在性观看| 强奸国产精品视频| Av色五月| 久操免费电影| 精品久久久久久中文| 麻豆久久久久久久久丝袜 | 97蜜桃综合| 久久久久久裸体 | 99啪啪视频| 中文字幕版| 亚洲欧美色图片| 看一级黄色视频| 免费亚洲国产精品久久一区| 久久久久国产精品久久久| 91站街按摩店老熟女熟女| 99蜜桃臀久久久欧美精品网站| 午夜精品久久一区二区| 日本在线不卡v二区| 欧美亚洲AN| 翔田千里无码一区| 大稥蕉免费视频这里只有精品| 中文字幕国产| 97在线精品观看视频| 国产久久久9999| 亚洲91综合| av天堂精品久久| 91在线色| 国产老太乱伦一区| 九九九九久久久| 天天插天天操天天摸天天射天天看| 成人午夜高潮av猛片| www网站黄| 亚洲限制级| 久久久久亚洲三级电影| 婷婷六月天| 草B在线| 日韩欧美成人午夜福利| 97 国产一区| 亚洲色图日韩丝袜制服一区二区五月在线| 亚洲成人性爱在线观看| 啊啊啊好湿久久| 尤物av网站免费在线播放| 私色综合网| 综合欧美亚洲| 花野真衣| 青草一区二区| 99国产人成精品| 亚洲drav色图| 亚洲精品第一| 欧美亚洲韩国视频十五区 | 韩日欧亚a级| av在线资源| 啊啊啊啊免费视频| 国产精品色| 无马一区二区| 桃花色涩综合影院| 人妻第一页| 伊人网av| 午夜精品久久一区二区| 天天干一区二区| 国产精品久久久吖| 日韩在线AB| 午夜超碰| 婷婷国产精品九区| 久久久精品中文字幕爱豆| www.高清无码诱惑一区.com | 日本韩高清无砖码22o| 日本九九久久99播| 伊人网免费视频| 中文一区二区婷婷视频| 国产97免费视频| 婷婷情色综合网| 超碰在线一区| 亚洲综合图色在线| 日本一区二区不卡精品| 91热| 老熟女91av| 亚洲无线码欧洲精品区别| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 久久精品视频久久久| 欧成人精品一区二区三区| 婷婷大香蕉| 亚洲高清欧美总合| 蜜臀av中字字幕网站| 97亚洲精品超碰| 人妻精品4K4K4K4K4| 蜜臀99久久| 北条麻妃99精品青青久久| 青青草中文字幕| 日本精品国产视频| 男女激烈网站最新| 伊人96在线| 久久香蕉国产传媒一区剧情天美| 国产福利一区二| 综合激情一一91| 久久人人看| 深夜福利黄片| 天海翼久久| 成人国产精品三级A片| 欧美懂色综合网| 天天日天天操VV| 亚洲熟女诱惑| 91热爆在线| 成人五月天丁香激情综合| 国产久久一区二区| 亚洲激情网| 性猛交| 9精品久久| 久久久夜夜嗨免费视频| 男女啪啪网站免费视频| 国产第二页| 9久久精品| 性爱网站一区二区| 国产成人天堂| 男人的天堂2019AV| 中文字幕国产| 高清无码人妻久久久一区二区三区aⅴ| 中文字幕五区| 乱伦图av| 老女人91| 色性综合| 日韩免费在线视频观看| 黄色十八禁| 高清不卡视频| 免费看欧美美女黄色大片| 国产又粗又大硬免费色网视频| 青青操97| 在线无码操| 91无遮挡| 亚洲精品97p| 久久999久| 猛交交| 国语对白在线播放视频| 天天干人妻视频| 五十路熟女工口 | 91+欧美| 激情综合亚洲| 欧美亚洲尤物久久| 日本潮催一卡操| 久久精品无码一区二区三区| 亚洲综合九| 红桃视频高潮| 五月丁香啪啪| 人妻在线视频| 精品无码不卡视频| 日本韩高清无砖码22o| 欧洲人妻视频| 欧美激色| 蜜臀久久久国产| 校园春色综合色| 熟女人妻av在线资源,黄色的资源| 极品色www影院| 无码人妻精品一区二区中文| 97香蕉网| 97天堂| 老鸭窝成人| 欧美综合网1| 欧美日韩国产电影| 国产精品一区人妻精品阁在线| www.人人cao| 免费A V在线播放| 一区二区三区亚洲| 欧美一区二区一级岛国大片| 啪啪啪男女亚洲中文字幕99| 久久高清无码夜夜操| 中国小夫妻勾搭露脸淫荡对白| 日日日啊啊啊| 青娱乐导航AV| 按摩中文字幕| 韩国黄色片精品久久久| 一级久久久久久久久久久| 久久五月天婷婷丁香中文字幕| 福利视频香蕉免费一区二区在线| 九九九九精品精| 人妻第一页| 96国产精品| 加勒比久久av| 国产免费一区| 久久久久久久9最新免费视频观看| 青娱乐大香蕉| 99RE在线视频精品,这里只有精品| 日韩影片中文字幕一区二区三区| 久久久999日本大片| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 懂色av中文字幕一区二区三区天美 | 欧美色一二三| 超碰久久中文| 久久久久久久久久久久久久久性生活视频| 亚洲精品美女久久久久久久久| 无码聚合| 精品婷婷| 欧洲色色| 98一区二区精品| 久久久久久夜夜夜夜夜| 久操99| 嗯嗯啊啊操死我| 色综合加勒比四四季| 久久AV无码1区2区3区| 综合网欧| 久久九七| 五月开心久久AV官网| 97久久精品不卡| 欧美色图97| 国产sv美女内射| 香蕉视频欧美一卡二卡| 人人操人人色网| 中文字幕AV乱伦| 中日韩久久久| 国产精品视频精品一二| 中国探花熟女| 操逼啊啊啊91| 91麻豆va国产精品| 精品久久視頻在线| 免费观看欧美日韩操逼视频| 婷婷五月天网| 久久嫩草国产成人一区| 亚洲少妇在线影音| 91热色| 亚洲欧美清纯| 老女人综合| 美国日韩黄片| 人妻一区视频| 强免费黄色网址| 中文高清一区二区的| 色色色色色色色色色色色色色色综合| 日韩内射视频| 久久精品视| 清纯唯美综合| 国产精品久久aV| 韩国成人精品久久久免费看| 国产懂色精品国产av| 天天综合色| 在线视频一区二区传媒| 久久久久斤小| 久这精品中文在线观看视频| 蜜臀久久99精品久久久久久成人小说 | 蜜臀久久99精品久久综合| 少妇天堂网络| wuyechaopeng| 91香蕉国产尤物视频| 天天躁日日躁AAAAXXXX国产 | 婷婷99狠狠躁天天躁| 亭亭丁香激情| av大香蕉网站| 久操视频在线| 富女玩鸭子一级毛片| 操逼操逼逼操操逼91| 色性综合| 九区国产| 中文字幕在线免费观看 | 亚洲精品 超碰| 欧美亚洲韩国视频十五区| 麻豆美女丝袜人妻中文| 黄片色区软件| 视频二区美腿丝袜制服人妻欧美 | 久九干| 日韩AV无码中文一区二区| 精品久久久久久中文字幕视频免费| 东京热91| 欧美天天综合网版| 人妻欧美| 亚洲国产精品成人综合| 亚洲欧洲无码bt精品合集| 亚欧毛片基地国产毛片基地| se01国产在线视频| 天天干天天操天天干天天操| 99视频内射三四| 男人天堂2019亚洲| 欧美性爱97超碰| 中国黑人三级片网站上区| 亚洲日韩久久精品一区| 一本大道久| 久久精品一区二区三区四区五区| 99久久国产精品免费高潮| 日本伦乱九九九综合| 天天操夜夜操狠很操| www.色婷婷色综合| 国产动漫操逼视频| 激情综合五月婷婷| 亚洲综合888| 久久久国产护士丝袜美腿一| 人妻久久一区二区三区 | 女同性恋久久| 91亚洲色图| 亚洲 欧美 日韩 国产一区二区 | 欧美日韩香蕉| 99色综合| 久操操| 青青草一区二区三区四| 成人久久久| AV乱伦国产| 亚洲国产日韩欧美熟妇在线| 欧洲中文字幕| 美女t无毒不卡不卡| A级毛片在线看免费| 九九AV| 热久久无毒不卡| 日韩免费三级黄片电影| 婷婷色在线| 黄色一区三区| 大香蕉乱级| 懂色综合久久久| 最新精品久久蜜桃 | 欧成人精品H无码| 日韩一区二区高清在线观看的| 精品久久久久9999| 欧美性爱一区二区三区| 久久久精品视频免费观看| 粉嫩国产精品久久久| 精品一区99999| 日韩一二三区| 久久婷五月天| 天天拍夜夜| 五月色网| 欧美色91| 最新日韩黄片| 欧美,亚洲,日韩,v,天堂,手机在线观看| 秋霞一集毛片观看| 嗯嗯啊啊操死我| 五月亭亭六月丁香| 激情文学欧美| 国产狂喷潮在线精品| 精品久一区免费| 欧美色另类| 日本天天吊| 欧差乱伦二三| 躁躁日曰躁2020| 欧美 日韩 亚洲 春色| 国产少妇与亚洲av| 亚洲AV在线资源| 国产多人在线观看视频| 97香蕉人人乳| 婷婷10月天青娱乐| 激情久久久| 五月婷婷久久综合| 江都AV在线| 日本一级婬片试看三分钟| 欧美色图私拍91| 天天日B夜夜干B时时操B| 欧美爱国产综合、| 婷婷月色| 日本人妻伦在线中文字幕| 夜草欧美| 亚洲国产日韩欧美熟妇在线| 久久人妻熟女一区二区 | 日韩免费在线观看不卡| 美女露胸露奶头| 欧美日韩国产三级黄色| 96一区二区三区| 九色PORNY9l原创自拍| 性久久久| 亚洲欧洲日韩中文字幕一区| 久久久久久中文字幕中文字幕最新| www.亚洲成人一区| 深夜激情| 猛交交| 鸡巴插逼视频| 欧美色性情| 久久超碰av在线| 天天透伊人|